PagSeguro
Canais iMasters

PHP

Construindo uma Arquitetura de Desenvolvimento em PHP 5 - Parte 02

Olá pessoal. Já vimos no artigo passado a camada "arquitetura", onde criamos uma classe de manipulação de banco de dados (na arquitetura ficam as classes utilitárias comuns a todos os sitemas ex: BancoDeDados, Manipulação de Arquivos, E-mail, etc), que será usada pela nossa aplicação e para várias outras que vocês queiram fazer.

Estudo de Caso

Vamos pegar um caso MUITO simples para o entendimento de todos. Tenho um site e quero ter o cadastro de meus clientes para no futuro eu poder fazer propagandas, estatísticas, etc. Agora que já temos o nosso objetivo, vamos começar a pensar em objetos.

O mapeamento será o seguinte:

Quem tem atributos e realiza ações? Neste nosso caso é somente o Cliente. Então só teremos o objeto Cliente.

Uma classe é formada ou de atributos e/ou de ações,estados(métodos).

E quando estamos falando das funções do sistema estamos falando do NEGÓCIO do sistema. Estamos saindo da camada da Arquitetura e entrando na cadama Negocial.

Procedimento: Na pasta negocio crie uma pasta com o nome do sistema, no nosso caso é a pasta "siscliente" (sistema de cliente) e dentro dela a pasta "cliente" e dentro dessa pasta vamos criar a entidade (classe) Cliente.

Os atributos do cliente são: código, nome, telefone, email e endereco;

Cliente.class.php

class Cliente {

    private $codigo;
    private $nome;
    private $telefone;
    private $email;
    private $endereco;

    public function setCodigo($codigo) {
        $this->codigo = $codigo;
    }

    public function getCodigo() {
        return $this->codigo;
    }

    public function setNome($nome) {
        $this->nome = $nome;
    }

    public function getNome() {
        return $this->nome;
    }

    public function setTelefone($telefone) {
        $this->telefone = $telefone;
    }

    public function getTelefone() {
        return $this->telefone;
    }

    public function setEmail($email) {
        $this->email = $email;
    }

    public function getEmail() {
        return $this->email;
    }

    public function setEndereco($endereco) {
        $this->endereco = $endereco;
    }

    public function getEndereco() {
        return $this->endereco;
    }

}

A diferença entre a Entidade e o Objeto DAO. A entidade somente conterá os atributos e os métodos de acesso a esses métodos.

O DAO conterá os métodos que realizam as ações (incluir,alterar,etc) da Entidade relacionada. Ou seja, para cada Objeto.class.php e esse objeto realiza operações existirá um ObjetoDAO.class.php.

O Data Access Object (DAO) significa "Objeto de acesso ao Banco", ou seja todas as operações que necessitarem manter alguma informação com o banco de dados será essa classe que fará a manipulação.

No próximo artigo veremos a aplicação do objeto DAO.

Abraço.


Comente também

1 Comentário

Anderson Lima
Anderson Lima

Rogério, uma dúvida: Pq não implementar a entidade e o DAO na mesma classe? Seria uma espécie de entidade que saberia como inserir, alterar e excluir-se do banco de dados. Claro, que a entidade poderia ser utilizada mesmo sem acesso ao banco de dados, como um repositório de dados somente, por exemplo... Sei que vc está seguindo um pattern, mas digo isso pq o DAO não faz sem a entidade... qual sua opnião a respeito?

Qual a sua opinião?

Comentários considerados ofensivos serão moderados.

Parceiros

IBM
PagSeguro
Internet Innovation
Dialhost
HostNet
Tecla
KingHost
DotStore
Dinamize