aze 0 Denunciar post Postado Julho 12, 2010 Bom dia, alguem poderia me passar um exemplo de php com mysql, com utilização de Dao. Pois nao sei como recuperar os valores na view e repasar para o controller. A classe Dao eu sei, nao sei na tela de update, delete, insert Desde ja agradeço Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Ribeiro 4 Denunciar post Postado Julho 12, 2010 @azeTudo depende da necessidade da sua aplicação. Conhecemos DAO por Data Access Object, ou seja, Objeto de Acesso a Informações. Antes de entrarmos na questão das classes DAO, deixe-me lhe apresentar um (talvez novo) conceito, o de Value Object. O propósito de um Value Object é representar uma entidade de negócio. Em sua forma mais simplificada, um VO é uma classe de mapeamento de informação que reflete a entidade tal qual ela foi modelada e existe na base de dados. O propósito principal de um VO é armazenar informação em qualquer um dos seus trajetos: banco de dados > usuário, usuario > banco de dados. Geralmente se utilizam os VO's para tratar das operações básicas de CRUD em sua forma mais crua. Leia mais sobre o padrão VO: Padrões de Projeto - Value Object (Erico Renato Oliveira de Almeida). Agora sim, falemos de Data Access Object. Um DAO atua como um mediador entre a base de dados e os Value Objects. Teoricamente, uma classe Base DAO sabe especificamente como se comunicar com a base de dados. A Base DAO sabe com qual base de dados se está interagindo, que tipo de base de dados ela é, esteja ela trapalhando com mysql, mssql, pg e etc. A Base DAO é, essencialmente, a camada Model do esquema MVC. A utilização de uma classe DAO se dá, justamente, no momento em que necessitamos de algo diferente de um objeto do tipo Value Object. Digamos que você precise listar os clientes por estado e cidade. Um VO não seria o encarregado de fazer tal listagem, mas sim um DAO: class ClienteDAO extends BaseDAO { public function getListaClientesPorCidadeEstado($cidade, $estado) { $sql = " SELECT * FROM cliente WHERE cidade = '{$cidade}' AND estado = '{$estado}' "; // Aqui você manipula as transações da maneira que achar mais conveniente... }} Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Costa da Silva 0 Denunciar post Postado Julho 12, 2010 Olá, Bem quando se trabalha com PHP ou qualquer outra Linguagem de programação que seja O.O em MVC, trabalhando com Dao, exite alguns fatores a serem estudados, os metodos pricipalmente, e os arquivos onde ficaram, existem 03 pastas a serem básicas Model(Molelo de Classe) View(visão das Classes) Pecistencia(Classes que se comunica com o bando), ultilizando os Daos que contem os Patterns colocaremos dentro da pasta Percistencia, bem exemplo, digamos que você tem um um Classe Produto, você tera que criar uma Classe Dao para Produtos contendo os metodos de inserção,update,delete e select etc... classe Dao base para conexão vou por abaixo para um breve exemplo. <?php class Dao { public $con;//atributo public $sql;//atributo public function conexao(){ $this->con=new PDO('mysql:host=localhost;dbname=banco', 'user', 'senha');//ultilizando o PDO try{ if(!$this->con){ $exceptionstring = "Erro conecting to database <br />"; throw new exception ($exceptionstring); } return $this->con; }catch(PDOException $e){ echo $e->getMessage(); die(); } } public function __destruct() {//função de fechamento do banco if($this->con != null) $this->con = null; } ?> espero que tenha ajudado. qualquer coisa grita ae.. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Ribeiro 4 Denunciar post Postado Julho 12, 2010 @Daniel Costa da Silva Fala xará, tudo bem? Então, algumas pequenas correções à sua explicação, se me permite: "...ultilizando os Daos que contem os Patterns colocaremos dentro da pasta Percistencia..." Na verdade, os Data Access Object representam a Model da estrutura MVC, mas é claro que se encaixam no conceito de persistência. Veja bem, as classes DAO representam uma camada própria e formam um pacote de acesso de dados, algumas vezes sob o pacote do modelo, algumas vezes sob um pacote independente e outras (raras) vezes sob o pacote de controladores. O mais comum é mesmo que o pacote de DAO fique subordinado ao Modelo, mas sem extendê-lo. Assim temos uma separação e relativa independência da camada de acesso dados e do Domínio.O principio é que para cada Modelo, temos um DAO correspondente. Toda interação e configuração com o Banco de dados, ou com o framework de persistência, ficam nas camadas dos DAO, AR, VO e BO, dependendo, mais uma vez, da necessidade da aplicação. Dessa forma, temos a possibilidade de manipular as operações básicas de CRUD com VO's, BO's ou AR's, e os DAO ficam à disposição para programarmos métodos mais específicos, como getListaClientesPorEstadoCidadeBairro. E com relação ao: public function __destruct() {//função de fechamento do banco if($this->con != null) $this->con = null;}Isso não é necessário com a utilização de PDO. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Costa da Silva 0 Denunciar post Postado Julho 12, 2010 @Daniel R. Gomes Ótima colocação, fica mas um dica ae. Compartilhar este post Link para o post Compartilhar em outros sites