Doctrine ORM – parte 1

Doctrine ORM

Bom dia pessoal,

Hoje estarei falando do Doctrine 2, um dos melhores frameworks ORM(Object Relational Mapper) disponível para PHP.

Para quem não conhece, sistemas ORM são usados para criar uma “ponte” entre o banco de dados e sua linguagem de programação OOP. Basicamente, criamos classes chamadas de “entidades” na qual na maioria das vezes representam tabelas. Suas variáveis, representam as devidas colunas respectiva da tabela.

Frameworks ORM possuem diversas vantagens, tais como utilizar recursos do OOP(Heranças, Interfaces, Polimorfismo, etc…), gerenciar a estrutura do seu banco de dados de acordo com as entidades criadas e utilizar Queries DQL(inspiradas no Hibernate HQL do Java), onde utiliza-se apenas um formato de query independente do SGBD que esteja utilizado.

Atualmente o Doctrine ORM está na versão 2.3 estável e poderá ser utilizado em diversos frameworks PHP, como Symfony, Zend Framework e Laravel.

Nesse post, estarei ensinando a instalar o Doctrine ORM no Zend Framework. No caso do Symfony, o Doctrine por padrão já é utilizado para gerenciamento de banco de dados, no entanto, só é necessário configurar a framework para se conectar ao seu banco de dados.

Zend Framework

A equipe do Doctrine oficialmente desenvolveu um módulo para o Zend Framework 2(https://github.com/doctrine/DoctrineORMModule). Para instalar, basta apenas adicionar ao seu arquivo composer a chamada para o “doctrine/doctrine-orm-module” em sua versão “0.*”. Você poderá utilizar o comando abaixo se preferir.

$ composer require doctrine/doctrine-orm-module 0.*

Após adicionado, é necessário atualizar sua framework pelo composer.

$ composer update

Adicione em os módulos “DoctrineModule” e “DoctrineORMModule” em seu arquivo config/application.config.php, em seguida, crie o diretório data/DoctrineORMModule/Proxy e atribua permissão de escrita ao mesmo.

Para finalizar a instalação, adicione a configuração abaixo em cada módulo(Ex. module/Application/config/module.config.php no caso do módulo se chamar Application) que utilize entidades do Doctrine. Essa configuração fará com que o Zend reconheça as entidades do Doctrine.

<?php
return (
    'doctrine' => array(
        'driver' => array(
            'application_entities' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(
                    __DIR__ . '/../src/Application/Entity'
                )
            ),
            'orm_default' => array(
                'drivers' => array(
                    'Application\Entity' => 'application_entities'
                )
            )
        )
    )
);

Configure o acesso ao banco de dados utilizando a configuração abaixo. Essa configuração deverá estar em config/autoload/doctrine.local.php. Substitua PDOMySql para o driver relacionado ao SGBD utilizado. Segue a lista.

  • PDOPgSql – PostgreSQL
  • PDOMySql – MySQL/MariaDB
  • PDOOracle – Oracle
  • PDOSqlsrv – SQL Server
  • PDOIbm – IBM DB2
<?php
return array(
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
                'params' => array(
                    'host'     => 'localhost',
                    'port'     => '3306',
                    'user'     => 'username',
                    'password' => 'password',
                    'dbname'   => 'database',
                )
            )
        )
    ),
);

No próximo post estarei explicando criar uma entidade e utilizar comandos do Doctrine no Symfony e no Zend. Espero que tenham gostado, até a próxima pessoal!

Anúncios

4 comentários em “Doctrine ORM – parte 1

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s