Symfony2,EntityManager :: getRepository(Namespace \ To \ Some \ Class :: class OR'** Bundle:Entity')

时间:2016-02-09 08:56:01

标签: php symfony doctrine-orm entitymanager

Symfony2文档说我应该使用别名快捷方式'ByBundle:myEntity'作为实体路径:

$em->getRepository('ByBundle:myEntity');

但是这个字符串文字是没有用的 - 没有重构,没有快速和自动重命名IDE中的实体类。

我使用magic method ::class

$em->getRepository(\ByBundle\Entity\myEntity::class);

问题:我这样做了吗?

2 个答案:

答案 0 :(得分:4)

事实上,Symfony2核心团队正在使用:: class方法添加表单字段类型,例如:$builder->add('name',TextType::class,array(...)),因为Symfony v2.8我觉得你的方式没有错。

<强>更新 这允许IDE在链接的实体类命名空间发生更改时抛出异常,并且您将能够在开发过程中识别此异常。这绝对是一个&#34;安全比抱歉更好#34;如何映射实体而不是将完全限定的命名空间甚至别名作为字符串的方式。

答案 1 :(得分:1)

是。使用类引用总是比字符串refence更好。

使用字符串通常意味着存在将字符串转换为类的算法。

还需要IDE友好。