从未导入自定义注释



我创建了一个条令注释

namespace FondativeGenBundleFrontAnnotation;
use DoctrineCommonAnnotationsAnnotation;
/**
* @Annotation
* @Target("PROPERTY")
*/
class ReferenceAnnotation extends Annotation {
}
use FondativeGenBundleFrontAnnotationReferenceAnnotation ;
/**
 * A Driver.
 * 
 *
 * 
 * @ORMEntity
 * 
 */
class Driver {
    /*
     * @Reference
     */
    private $name;

我得到这个异常

[语义错误]属性中的注释"@Reference"Fondative\TestBundle\Entity\Driver::$name从未导入。

一个非常常见的错误;)

Doctrine/Annotation通过ReflectionProperty::getDocComment()从注释中读取注释。

问题示例:

class MyClassA
{
    /**
     * Foo
     */
    private $foo;
    /*
     * Bar
     */
    private $bar;
}

$ref = new ReflectionClass('MyClassA');
print sprintf(
    "Comment of MyClassA::foo -> n%snn",
    $ref->getProperty('foo')->getDocComment()
);
print sprintf(
    "Comment of MyClassA::bar -> n%snn",
    $ref->getProperty('bar')->getDocComment()
);

属性foo有文档注释,但属性bar没有注释,因为声明注释中存在拼写错误(一个特殊字符*)。

在PHP中,文档注释必须从两个字符*开始!

修复这个拼写错误,以及所有作品;)

class Driver {
    /*
     * @ReferenceAnnotation
     */
    private $name;

或者将注释类重命名为Reference和

use FondativeGenBundleFrontAnnotationReference as Reference ;
     /*
     * @Reference
     */
    private $name;

相关内容

  • 没有找到相关文章

最新更新