Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aze

Dao Php

Recommended Posts

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

@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

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 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 R. Gomes

 

Ótima colocação,

fica mas um dica ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.