Doctrine 的命名空间别名

nij*_*sen 4 doctrine namespaces symfony

我开始负责一个大型遗留 Web 应用程序,我正在尝试将其慢慢重构到 Symfony2 框架中。我所做的第一件事就是包含 Doctrine。

我已经在 Composer 的帮助下安装了 Doctrine 并为其设置了引导文件。我的实体,为了避免未来的复杂性,已经遵循命名空间方案Company\BundleName\Entity\Object。以下工作:

$em->getRepository('Company\\BundleName\\Entity\\Object')
   ->find($id)
;
Run Code Online (Sandbox Code Playgroud)

我找不到任何关于如何像 Symfony2 那样通知 Doctrine 命名空间别名的参考,所以我可以写

$em->getRepository('CompanyBundleName:Object')
   ->find($id)
;
Run Code Online (Sandbox Code Playgroud)

反而。我怎样才能做到这一点?

Ste*_*eve 5

现在有一个更简单的方法:

$config = Setup::createAnnotationMetadataConfiguration(...);
$config->addEntityNamespace('CompanyBundleName', 'Company\BundleName\Entity');
Run Code Online (Sandbox Code Playgroud)

会做你想做的。我花了好几个小时才找到这个!它不在我能找到的任何地方的文档中。