This translation created Melina Rachel, you can find Melina on twitter : http://twitter.com/MelinaRachel and email on melinarachel@gmail.com
Gerador de DAO para PHP e MySql
DAO (Objeto de Acesso a Dados): É um padrão de projeto que acessa variáveis de dados dependendo da fonte do dado. Permite acesso à armazenamento persistente (como à bancos de dados). Varia muito dependendo do tipo do armazenamento, como bancos de dados relacionais, bancos de dados orientados à objetos, modelos de tabela (flat file database) e daí em diante, dependendo da implementação do usuário.
Esse gerador de DAO cria classes em php que fornecem operações em bancos de dados MySql (lembrete: se necessário utilizar transações, utilize a engine innobd).
Utilize chave primária para cada tabela, e esta deve ser do tipo int. O gerador de DAO não gera classes para tabelas que não contêm chave primária. Em geral, não é recomendável ter tabelas sem chaves primárias.
Como gerar classes
- Faça o download da última versão do Gerador de DAO para PHP e MySql
- extraia os arquivos
- ajuste a conexão para as propriedades do banco no arquivo templates/class/dao/sql/ConnectionProperty.class.php
- execute o arquivo generate.php (por exemplo: http://localhost/phpdao/generate.php)
- as classes geradas serão colocadas na pasta ‘generated’
Como funciona
A aplicação gera três classes para uma tabela (a tabela deve conter chave primária). A primeira classe é Objeto de Transferência de Domínio (Domain Transfer Object). Veja um exemplo (2)
A segunda classe é a interface que define as operações na tabela. Veja um exemplo (3)
A terceira classe implementa a interface anterior. Veja um exemplo (4)
Agora, você pode escrever as suas próprias queries não padronizadas que não foram geradas. Por exemplo, de duas tabelas. Veja um exemplo (5)
Como escrever queries não padronizadas
No diretório: generated\class\mysql\ext - Esta ferramenta gera classes vazias. Nestas classes você pode escrever os seus métodos, como nesse exemplo (6). DAOFactory retorna a instância da classe. Então, quando você faz a chamada DAOFactory: getContentDAO(), você tem todos os métodos das classes ContentMySqlDAO e ContentMySqlExtDAO. Quando você escreve métodos em ContentMySqlExtDAO e você gera novamente as classes, este arquivo não será reescrito. Baixe exemplos (7) e abra o arquivo ContentMySqlExtDAO.class.php para ver como você pode escrever novas queries sql.
- Todas as chamadas são feitas pelo DAOFactory.
Requistos
- PHP 5x
Perguntas, sugestões
Me mande um email: info (arroba) phpdao.com
Alterações
1.0 - primeira versão
1.1 - adicionada a possibilidade de conseguir id gerada de linha inserida
1.2 - adicionado o método ‘clean’; corrigido problema no método ‘queryAll’
1.3 - protegida a Injeção de SQL (SQL Injection)
1.4 - corrigido problema com valores que continham o caractere ‘?’
1.5 - corrigido problemas com valores nulos
1.6 - corrigido problemas com valores nulos
1.7 - métodos adicionais
1.8 - Modificada query sql no método clean: truncate table - > delete from
Se a tabela termina com a letra 's', então o Objeto de Transferência de Domínio (Domain Transfer Object) não contém essa letra.
- Resolvido problema com atualização de método quando nome da chave primária não era igual a ‘id’
2.0 - Agora, você pode escrever as suas próprias queries não padronizadas que não foram geradas. Por exemplo, de duas tabelas. Veja um exemplo (8)
2.1 - Apoio a chave primária complexa
2.2 - Apoio a criar linha com campo em branco
2.3 - Remove avisos e atribui PKs geradas à campos válidos em DTO (Domain Transfer Object)
2.4 - Ajustada a ordem de comentários em classes
2.5 - Propriedades de classes DTO não contém a letra ‘s’ quando o nome da coluna termina com essa letra
2.6 - Pequeno problema com dígitos numéricos
Exemplos:
Você pode baixar exemplos (9). Esse arquivo contém um exemplo de script sql que cria tabelas, gera classes e o arquivo index.php demonstra o uso do php.dao.
Mais exemplos (10).
Tags: php Data Access Object, DAO generator for PHP and Mysql. DAOGenerator, DAO generator for PHP and Mysql, Data Access Object, php mysql object generator, DTO, Domain Transfer Object, Objeto de Transferência de Domínio, Injeção SQL