Desenvolvimento com o PEAR::DataObjects
3- Configuração
Todos os tutoriais que li para aprender a manusear essa classe eram bem explicativos, mas a falta de exemplos me deixaram muitas duvidas. Vou mostrar como trabalhar com o DataObject baseado em um exemplo prático bem simples.
Criarei as sequintes tabelas em uma base de dados mysql chamada test:
Agora criarei uma pasta dentro de meu localhost para os arquivos. Inicialmente criarei um arquivo de configuração, para que a classe possa conectar com meu banco de dados. Nomearei o arquivo como db.ini:
Salve esse arquivo (sem os comentários) dentro da pasta que você criou no localhost.
Agora para gerar os objetos execute o arquivo createTables.php que está dentro da pasta DataObject, passando como parametro o arquivo .ini criado. Ex:
Atenção o endereço do arquivo deve ser passado em relação ao arquivo createTables.php, no exemplo eu passei o arquivo direto porque fiz uma copia para o mesmo diretório apenas para facilitar, voce pode fazer o mesmo, mas não remova o original do local de origem. Para executar no linux basta substituir o php.exe por apenas php.
Após executar o comendo apenas verifique na pasta setada como class_location se os arquivos foram criados.
Todos os tutoriais que li para aprender a manusear essa classe eram bem explicativos, mas a falta de exemplos me deixaram muitas duvidas. Vou mostrar como trabalhar com o DataObject baseado em um exemplo prático bem simples.
Criarei as sequintes tabelas em uma base de dados mysql chamada test:
CREATE TABLE cidade ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, estado_id INTEGER UNSIGNED NOT NULL, nome VARCHAR(50) NULL, PRIMARY KEY(id), ); CREATE TABLE estado ( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(50) NULL, PRIMARY KEY(id) ); INSERT INTO `estado` ( `id` , `nome` ) VALUES ('1', 'Paraná'); INSERT INTO `estado` ( `id` , `nome` ) VALUES ('2', 'São Paulo'); INSERT INTO `cidade` ( `id` , `estado_id` , `nome` ) VALUES ('1', '1', 'CCuritiba'); INSERT INTO `cidade` ( `id` , `estado_id` , `nome` ) VALUES ('2', '1', 'Cascavel'); INSERT INTO `cidade` ( `id` , `estado_id` , `nome` ) VALUES ('3', '2', 'São Paulo'); INSERT INTO `cidade` ( `id` , `estado_id` , `nome` ) VALUES ('4', '2', 'Santos');
Agora criarei uma pasta dentro de meu localhost para os arquivos. Inicialmente criarei um arquivo de configuração, para que a classe possa conectar com meu banco de dados. Nomearei o arquivo como db.ini:
[DB_DataObject] database = mysql://root:senha@localhost/test usuario:senha@servidor/nome do BD schema_location = C:\www\testes\artigo\ Local onde estao os arquivos class_location = C:\www\testes\artigo\ Local onde as classes serão criadas require_prefix = DataObjects/ Pasta onde a classe DataObject se encontra class_prefix = DO_ Prefixo das classes, Ex: DO_cidade debug = 0 Mensagens de debug, 0 nao mostra nada
Salve esse arquivo (sem os comentários) dentro da pasta que você criou no localhost.
Agora para gerar os objetos execute o arquivo createTables.php que está dentro da pasta DataObject, passando como parametro o arquivo .ini criado. Ex:
C:\php4>php.exe includes\pear\DB\DataObject\createTables.php db.ini
Atenção o endereço do arquivo deve ser passado em relação ao arquivo createTables.php, no exemplo eu passei o arquivo direto porque fiz uma copia para o mesmo diretório apenas para facilitar, voce pode fazer o mesmo, mas não remova o original do local de origem. Para executar no linux basta substituir o php.exe por apenas php.
Após executar o comendo apenas verifique na pasta setada como class_location se os arquivos foram criados.
Novo Comentário: