Encontra-se atualmente em sua versão estável 2.3 e pode ser estudado através do site:
http://www.doctrine-project.org/
Um bom link para baixar versões anteriores segue aqui:
http://www.doctrine-project.org/downloads/
Para entendermos um pouco de como funciona este Framework vamos fazer um experimento de teste.
Um requisito inicial para que tudo funcione corretamente é ter instalado na sua maquina o gerenciador de dependências Composer.
Tendo o Composer já instalado vamos para este exemplo usar e baixar a versão do Doctrine 1.2.4:
Por padrão temos de colocar em nossa pasta no servidor Apache+PHP+Mysql uma pasta para o Doctrine, uma para os modelos (models) e uma para os arquivos do site (site).
Criei no banco de dados Mysql uma tabela para exemplo de nome "motocicleta":
---------------------------------------------------------
CREATE TABLE IF NOT EXISTS `motocicleta` (
`id` int(22) NOT NULL,
`modelo` varchar(50) NOT NULL,
`ano` varchar(4) NOT NULL,
`fabricante` int(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
---------------------------------------------------------
Criaremos dois arquivos na pasta models:
bootstrap.php
----------------------------------------------------------------------------
<?php
//4:24
require '../doctrine2/Doctrine.php';
spl_autoload_register(array('Doctrine', 'autoload'));
spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));
$manager = Doctrine_Manager::getInstance();
try {
// Insira aqui os dados de sua conexão
$conn = Doctrine_Manager::connection('mysql://root:@localhost/doctrine');
$manager->setAttribute(Doctrine_Core::ATTR_MODEL_LOADING,
Doctrine_Core::MODEL_LOADING_CONSERVATIVE);
$manager->setAttribute(Doctrine_Core::ATTR_EXPORT, Doctrine_Core::EXPORT_ALL);
$profiler = new Doctrine_Connection_Profiler();
$manager->setListener($profiler);
} catch (Doctrine_Manager_Exception $e) {
print $e->getMessage();
}
Doctrine_Core::loadModels('../models');
?>
----------------------------------------------------------------------------
build-models.php
----------------------------------------------------------------------------
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
require 'bootstrap.php';
set_time_limit(90);
$modelsPath = '../models';
$title = 'Modelos gerados com sucesso!';
$msg = '';
try {
Doctrine::generateModelsFromDb(realpath($modelsPath));
} catch (Doctrine_Import_Builder_Exception $e) {
$title = 'Falha ao gerar modelos!';
$msg = $e->getMessage();
}
print $title . "\n" . $msg;
?>
----------------------------------------------------------------------------
Estes dois arquivos serão responsáveis pela configuração do ambiente Doctrine e da abstração do banco. Para testarmos se tudo deu certo iremos através do navegador executar o arquivo criado de nome "build-models.php", caso tenha dado tudo certo a mensagem será:
Agora podemos conferir na pasta do projeto (models) os arquivos que o Framework criou de abstração do banco que são:
Observe que será criada uma pasta dentro de '/models/' de nome 'generated' com os arquivo de classe abstrata BaseMotocicleta.php e fora da pasta 'generated' teremos a classe que fará herdará dela os métodos, a classe de nome 'Motocicleta.php'.
Este exemplo e a continuidade do projeto podem ser estudados em vídeos no blog do nosso amigo http://www.rafaelwendel.com.
0 comentários:
Postar um comentário
Todos os comentários serão moderados e postados um tempo depois, comentários ofencivos serão deletados.