Buenas en esta
entrada indicaré cada uno de los pasos a seguir para configurar la
extensión YiiDoctrine2Orm y
tener disponible el popular ORM Doctrine2 en una aplicación creada
con YiiFramework, esta entrada me surge de el pequeño trabajo que me
dio configurarla (ya que en la web oficial no tienen un tutorial paso
a paso de la configuración) aunque abriendo los archivos de la extensión es muy intuitiva e incluso te traen el main.php y console.php de ejemplo para que puedas tener esta librería a disposición.
Lo primero que tenemos que hacer claro esta es bajar los archivos de
la extensión desde la página del proyecto, también tenemos que tener instalado también Doctrine 2 en nuestro equipo personalmente tengo el ORM en un repositorio separado a la de los proyectos y tengo un link a las carpetas del proyecto para poder hacer las actualizaciones al mismo y que este cambie en todos los proyectos que uso (en desarrollo cuando pasa a producción si es en un servidor externo hay que copiar las librerías).
Una vez tenemos el ORM y la extensión de YiiFRamework, descomprimimos la carpeta d2ormext-1.0.1.zip, en la carpeta "/applicationpath/protected/extensions/", una vez descomprimida ingresaremos a la carpeta "/applicationpath/protected/extensions/Wildkat/YiiExt/DoctrineOrm/vendor/Doctrine/" y hacemos lo siguiente
ln -s /ruta/hacia/doctrine2/lib/vendor/doctrine-common Common
ln -s /ruta/hacia/doctrine2/lib/vendor/doctrine-dbal DBAL
ln -s /ruta/hacia/doctrine2/lib/vendor/doctrine-build-common build-common
ln -s /ruta/hacia/doctrine2/lib/Doctrine/ORM ORM
Ahora nos posicionamos en la carpeta "/applicationpath/protected/extensions/Wildkat/YiiExt/DoctrineOrm/vendor/Symfony" y hacemos el siguiente enlace
ln -s /ruta/hacia/doctrine2/lib/vendor/Symfony/Component Component
Una vez tenemos estos archivos debemos hacer lo siguiente en nuestro archivo applicationpath/protected/config/main.php y applicationpath/protected/config/console.php
agregamos la siguiente linea antes del arreglo
Yii::setPathOfAlias('Wildkat', realpath(dirname(__FILE__) . '/../extensions/Wildkat'));
luego en el indice componente del arreglo agregamos lo siguiente
'components'=>array(
// los componentes que ya tengamos configurados
'doctrine' => array( 'class' => 'Wildkat\YiiExt\DoctrineOrm\DoctrineContainer', 'dbal' => array( 'default' => array( 'driver' => 'pdo_mysql', 'host' => 'localhost', 'dbname' => 'dbname', 'user' => 'userdb', 'password' => 'passworddb', ), ), 'cache' => array( 'default' => array( 'driver' => 'ArrayCache', 'namespace' => '__app', ), ), 'entityManager' => array( 'default' => array( 'connection' => 'default', 'metadataCache' => 'default', 'queryCache' => 'default', 'entityPath' => 'application.models.entities', 'mappingDriver' => 'YamlDriver', 'mappingPaths' => array( 'application.models.entities' ), 'proxyDir' => 'application.data', 'proxyNamespace' => 'Proxy', ), ), ),
Una vez tenemos esta configuración ahora tenemos que copiar el archivo applicationpath/protected/extensions/Wildkat/YiiExt/DoctrineOrm/commands/DoctrineOrmCommand.php a la carpeta applicationpath/protected/commands para tener disponible en yiic las ordenes para trabajar con doctrine.
Como se indico la extensión es muy intuitiva para configurar, ahora lo que nos queda es usar el ORM en nuestras aplicaciones de YiiFramework si no deseamos trabajar con el Active Record por defecto que trae el mismo, saludos espero que sea de ayuda este post