Table of Contents
Prepare o banco de dados, suas entidades e relacionamentos
Essa etapa é importante, uma vez que as entidades, posteriormente, serao geradas automáticamente via CLI do doctrine.
Instale o Skeleton do ZF3
composer create-project -sdev zendframework/skeleton-application path/to/install
Install Doctrine Module ORM/ODM
composer require doctrine/doctrine-orm-module
Crie o arquivo de configuração do Doctrine em config/autoload: doctrine.local.php
<?php
use Doctrine\DBAL\Driver\PDOMySql\Driver as PDOMySqlDriver;
return [
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => PDOMySqlDriver::class,
'params' => [
'host' => '127.0.0.1',
'user' => 'root',
'password' => '',
'dbname' => 'dbname',
]
],
],
],
];
Adicione os drivers no module.config, dentro array que será retornado
'doctrine' => [
'driver' => [
__NAMESPACE__ . '_driver' => [
'class' =>
'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'cache' => 'array',
'paths' => [
__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity'
]
],
'orm_default' => [
'drivers' => [
__NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
]
]
]
],
Exporte os Annotations Mapping das entidades com o orm:convert-mapping do doctrine-module
./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Application\\Entity\\" [--filter "SomeEntity"] --force --from-database annotation ./module/Application/src/ /** created wrong folder structure in ZF3 */
Gere os getters e setters das entidades com o orm:generate-entities do doctrine-module
./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities --[filter "SomeEntity"] ./module/Application/src --generate-annotations=true
Gere os Repositories com o orm:generate-repositories – for Lazy People 😉
1. Add repository annotation in the generated entities:
@ORM\Entity(repositoryClass="Application\Entity\EntityRepository")
2. Execute o comando de geração de repositories
./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-repositories [--filter "SomeEntity"] ./module/Application/src
Begin adding routes and Controllers inside module.config.php
Add view inside view folders following Controller/Action structure
Add Restful API?

Carlos R. V. Medeiros
January 22, 2019Parabéns pelo excelente material de qualidade que criou aqui.
Em relação a este artigo, poderia me dizer como contornar o seguinte problema:
Não consigo instalar o doctrine na última versão do ZendFramework 3.
Como faço para instalar uma versão prévia, no doctrine é indicado que eu instale o ZF 3.1.1
Carlos R. V. Medeiros
January 22, 2019erro:
Problem 1
– Conclusion: don’t install zendframework/zend-mvc 3.1.1
– Conclusion: don’t install zendframework/zend-mvc 3.1.0
– Conclusion: remove zendframework/zend-mvc 3.0.1
– Conclusion: don’t install zendframework/zend-mvc 3.0.1
– doctrine/doctrine-orm-module 2.1.1 requires doctrine/doctrine-module ^2.1.3 -> satisfiable by doctrine/doctrine-module[2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.1.7].