code-944504_1920

Cuando quieres optimizar la gestión de tu proyecto y la evolución del mismo te planteas el uso de un ORM para gestionar la tu base de datos de forma más abstracta trabajando con objetos.

En nuestros proyectos hemos decido trabajar con Doctrine y aquí os traemos como instalarlo.

Primero indicar que claro tenemos instalado ZF2 y las Composer para hacer la instalación más sencilla.

Primero añadir los módulos de Doctrine al fichero composer.json de tu proyecto.  En la sección require deberías de tener algo así:


"require" : {

...
"doctrine/doctrine-module" : "dev-master",
"doctrine/doctrine-orm-module" : "dev-master",

...
}

Ahora instalaremos los módulos que acabamos de añadido ejecutando el comando php composer.phar update desde la línea de comandos.

Instalado Doctrine, le tienes que indicar a tu proyecto que use este módulos. Para ello tendrás que editar el fichero de configuración de la ruta config/application.config.php añadiendo esos módulos en la entrada “modules”


return array(

'modules' => array(

.....
'DoctrineModule',
'DoctrineORMModule',
....
),

 

Ahora tenemos que crear un fichero para la configuración de la base de datos que utilizará Doctrine. Creamos el fichero config/autoload/doctrine.local.php

 

return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'params' => array(
'host' => 'HOSTBBDD',
'port' => PORT,
'user' => 'USERBBDD',
'password' => 'PASWORDBBDD',
'dbname' => 'DBNAME',
'driverOptions' => array(
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
),
)
)
)
)
);

Ya solo nos queda un último paso en la configuración en donde tendrás que indicar donde estás las entidades que tiene que utilizar. Para ello tendrás que editar el fichero de configuración del módulo module.config.php en donde tendrás que añadir las siguientes siguientes:

'doctrine' => array(
 'driver' => array(
 'module_entities' => array(
 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
 'cache' => 'array',
 'paths' => array(__DIR__ . '/../src/Module/Model/Entity')
 ),
 'orm_default' => array(
 'drivers' => array(
 'Module\Model\Entity' => 'module_entities'
 )
 ))),

Realizado esto ya podrás empezar a utilizar Doctrine en tu proyecto.