Table of Contents
- 1 Prepare o banco de dados, suas entidades e relacionamentos
- 2 Instale o Skeleton do ZF3
- 3 Install Doctrine Module ORM/ODM
- 4 Crie o arquivo de configuração do Doctrine em config/autoload: doctrine.local.php
- 5 Adicione os drivers no module.config, dentro array que será retornado
- 6 Exporte os Annotations Mapping das entidades com o orm:convert-mapping do doctrine-module
- 7 Gere os getters e setters das entidades com o orm:generate-entities do doctrine-module
- 8 Gere os Repositories com o orm:generate-repositories – for Lazy People 😉
- 9 Begin adding routes and Controllers inside module.config.php
- 10 Add view inside view folders following Controller/Action structure
- 11 Add Restful API?
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].