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;
}



Postagens
Não informado

