我创建了一个学说注释
namespace Fondative\GenBundle\Front\Annotation;
use Doctrine\Common\Annotations\Annotation;
/**
* @Annotation
* @Target("PROPERTY")
*/
class ReferenceAnnotation extends Annotation {
}
use Fondative\GenBundle\Front\Annotation\ReferenceAnnotation ;
/**
* A Driver.
*
*
*
* @ORM\Entity
*
*/
class Driver {
/*
* @Reference
*/
private $name;
我得到了这个例外
[语义错误]属性中的注释“@Reference” Fondative \ TestBundle \ Entity \ Driver :: $ name从未导入过。
答案 0 :(得分:2)
一个非常常见的错误;)
包Doctrine/Annotation
阅读评论via ReflectionProperty::getDocComment()
中的注释。
问题示例:
class MyClassA
{
/**
* Foo
*/
private $foo;
/*
* Bar
*/
private $bar;
}
$ref = new \ReflectionClass('MyClassA');
print sprintf(
"Comment of MyClassA::foo -> \n%s\n\n",
$ref->getProperty('foo')->getDocComment()
);
print sprintf(
"Comment of MyClassA::bar -> \n%s\n\n",
$ref->getProperty('bar')->getDocComment()
);
属性foo
有文档注释,但属性bar
没有注释,因为在声明注释中存在拼写错误(一个特殊的字符*
)。
在PHP文档中,评论必须从两个字符*
开始!
解决此错误,一切正常;)
答案 1 :(得分:0)
class Driver {
/*
* @ReferenceAnnotation
*/
private $name;
或将注释类重命名为Reference和
use Fondative\GenBundle\Front\Annotation\Reference as Reference ;
/*
* @Reference
*/
private $name;