Php Zend Framework 2中的默认注释命名空间

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使用条令

自从ZF2进入RC状态以来,我一直在尝试使用它。一切进展顺利,但我想为注释设置一个默认名称空间,这样我就可以使用
@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
。但正如你所说,方便的选择总是排在最后…哦,谢谢。我没有意识到模块在做工厂的事情。这就是我想要的。