Jump to content


Paulo Candango

Member Since 07/08/2009
Offline Last Active 06/03/2010, 13:55
-----

Topics I've Started

Técnica De Desenvolvimento Em 5 Camadas

02/03/2010, 13:50

Pessoal, desenvolvemos aqui um módulo didático de progromação em várias camadas, no caso a aplicação está escrita em PHP, gostaria que havaliassem oque está bom e o que pode ser melhorado. Segue o esquema.

Dividimos a aplicação em 5 camadas: visão, controle, modelo, negócio e persistência.



1. na Visão eu chamo o Controle, veja:

	$enqController = new EnqueteController(null, null, 1); //Passando o tipo de enquete que eu quero, no caso seria 1
	$tmp = $enqController->consultaEnquete();
	echo $tmp->getTitulo()."<br />";
	
	foreach($tmp->getOpcoes() as $obj){
		echo $obj->getDescricao()."<br />";
	}



2.3. O Controller recebe, instancia um Model e joga para a camada de Negócio:

	class EnqueteController {
		
		public $enqueteModel;
		public $enqueteBO;
		
		public function __construct($id, $titulo, $idTag){
			
			$this->enqueteModel = new EnqueteModel();
			$this->enqueteModel->setId($id);
			$this->enqueteModel->setTitulo($titulo);
			$this->enqueteModel->setIdTag($idTag);

			$this->enqueteBO = new EnqueteBO();
			
		}
		
		public function consultaEnquete() {
			
			$tmpEnquete = new EnqueteModel();
			$tmpOpcoes = new OpcoesController();
			
			$tmpEnquete = $this->enqueteBO->consultaEnquete($this->enqueteModel);
			$tmpEnquete->setOpcoes($tmpOpcoes->consultaOpcoes($tmpEnquete));

			return $tmpEnquete;

		}
		
	}



4. A camada de negócio recebe, trata as regras de negócio que nesse caso não tem nenhuma e passa para a Persistência:

	class EnqueteBO {
		
		private $enqueteDAO;
		
		public function __construct(){
			$this->enqueteDAO = new EnqueteDAO();
		}
		
		public function consultaEnquete($enqueteModel){
			
			return $this->enqueteDAO->consultaEnquete($enqueteModel);

		}
		
	}



5. Que por fim recebe e faz o trabalho de acessar o banco e etc:

	class EnqueteDAO extends GenericDAO {
		
		public function consultaEnquete($enqueteModel){
			
			$sql = "SELECT * FROM tb_enquete WHERE id_enquete = ".$enqueteModel->getIdTag()." LIMIT 1";
			$this->getConexao();
			$resultSet = $this->sql($sql);
			$obj = $this->fetch_object($resultSet);
			
			$tmpEnquete = new EnqueteModel();
			
			$tmpEnquete->setId($obj->id_enquete);
			$tmpEnquete->setTitulo($obj->titulo);
			$tmpEnquete->setIdTag($obj->id_tag);
			$tmpEnquete->setOpcoes($obj->opcoes);
			
			return $tmpEnquete;
			
		}

Css Forçar A Renderização Do Conteúdo Dentro De Uma Div

07/08/2009, 15:59

Pessoal boa tarde, estou com um problema que não consigo resolver de geito nenhum, quase um desafio.
Preciso que o conteúdo de uma lista "UL" contido numa div não ultrapasse a altura da div, não posso colocar barra de rolagem e tenho espaço de sobra para as laterais, então queria que quando a lista ficasse maior que a div a lista caísse para o lado, e quando a sub lista "UL LI UL" ficar no final, no limite da DIV, ela tambêm caia para o lado respeitando o fim da div, sem barra de rolagem, veja um exemplo com defeito na imagem:

Posted Image

A div é o quadro vermelho, eu quero que quebrar a lista UL no limite da div.

IPB Skin By Virteq