Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Criação de um projeto no Zend Framework 3

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?

 

 

 

2 Responses
  • Carlos R. V. Medeiros
    January 22, 2019

    Parabé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, 2019

    erro:
    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].

What do you think?

Your email address will not be published. Required fields are marked *