Php Zend Framework 2中的默认注释命名空间
自从ZF2进入RC状态以来,我一直在尝试使用它。一切进展顺利,但我想为注释设置一个默认名称空间,这样我就可以使用Php Zend Framework 2中的默认注释命名空间,php,doctrine-orm,zend-framework2,Php,Doctrine Orm,Zend Framework2,自从ZF2进入RC状态以来,我一直在尝试使用它。一切进展顺利,但我想为注释设置一个默认名称空间,这样我就可以使用@Table而不是@Doctrine\ORM\Mapping\Table或@ORM\Table 从我在他们的文档中读到的Doctrine模块的文档中可以看出,没有任何选项允许您为读卡器指定默认名称空间,甚至指定您自己的读卡器类。是否有人知道这个选项在这个时候根本就不存在?还是有什么我没有看到的?据我所知,注释是通过处理类的use语句的方式定义的。目前,您确实使用ORM作为ORM使用条令
@Table
而不是@Doctrine\ORM\Mapping\Table
或@ORM\Table
从我在他们的文档中读到的Doctrine模块的文档中可以看出,没有任何选项允许您为读卡器指定默认名称空间,甚至指定您自己的读卡器类。是否有人知道这个选项在这个时候根本就不存在?还是有什么我没有看到的?据我所知,注释是通过处理类的use语句的方式定义的。目前,您确实使用ORM作为ORM使用条令\ORM\Mapping,因此注释会捕获
@ORM
以及简单连接的过去的所有内容
所以@ORM\Table
变成Doctrime\ORM\Mapping\Table
我猜-但我还没有测试过-如果您通过
使用Doctrine\ORM\Mapping\Table
包含Table类,@Table
将起作用。不过这只是一个小小的猜测。正如您所指出的,ZF2实现的资源并不多,而且生活质量特性总是排在最后;) 正如@Sam所说,use语句是处理注释名称空间的正常方式
如果要使用不同的注释读取器,请编写一个新的
DriverFactory
,以替换doctriemodule附带的注释读取器,并重写模块配置,以便使用新的工厂。(如果您认为您的新工厂可能对其他人有用,请随时针对DoctrineModule和share添加PR)如果您使用Doctrine\Common\Annotations\SimpleAnnotationReader
而不是标准的Doctrine\Common\Annotations\AnnotationReader
,则可以指定默认名称空间。这样,您就可以为读者提供一个默认的名称空间Doctrine\ORM\Mapping
,并在不使用所有use语句的情况下使用@Table
。我想我真正的问题是如何使用doctor\Common\Annotations\simpleanotationreader
而不是doctor\Common\Annotations\AnnotationReader
。但正如你所说,方便的选择总是排在最后…哦,谢谢。我没有意识到模块在做工厂的事情。这就是我想要的。