symfony2 migrations generate delete createquerybuilder symfony namespaces doctrine

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.