migrations - symfony doctrine
Namespace alias para Doctrine (2)
Me hice responsable de una gran aplicación web heredada y estoy tratando de refactorizarla lentamente en el marco de Symfony2. Lo primero que he hecho es incluir Doctrine.
Instalé Doctrine con la ayuda de Composer y configuré un archivo bootstrap para él. Mis entidades, para evitar futuras complicaciones, ya siguen el esquema de espacio de nombres Company/BundleName/Entity/Object
. Los siguientes trabajos:
$em->getRepository(''Company//BundleName//Entity//Object'')
->find($id)
;
No pude encontrar ninguna referencia sobre cómo informar Doctrine de los alias de espacio de nombres como lo hace Symfony2, así que puedo escribir
$em->getRepository(''CompanyBundleName:Object'')
->find($id)
;
en lugar. ¿Cómo puedo lograr eso?
La funcionalidad para esto está configurada en Symfony2 por el paquete DoctrineBridge, específicamente la función getMappingDriverBundleConfigDefaults .
Si desea reflejar esta funcionalidad sin Symfony2, deberá extender el administrador de entidades de Doctrine y generar el prefijo usted mismo en la función getRepository. No es parte del sistema de Doctrine.
Hay una manera más fácil ahora:
$config = Setup::createAnnotationMetadataConfiguration(...);
$config->addEntityNamespace(''CompanyBundleName'', ''Company/BundleName/Entity'');
hará lo que quieras ¡Me llevó varias horas buscar esto! No está en los documentos que pude encontrar.