我可以使用Doctrine\Common\Annotations\AnnotationReader
类在Symfony中读取自定义注释。
它看起来像下面这样。我已经描述了属性:
/**
* @var array
* @MappingClient(ignore=true)
*/
protected static $myProperty = [];
我可以解析注释@MappingClient
:
$class = new \ReflectionClass(get_called_class());
$property = $class->getProperty('myProperty');
$annotationReader = new AnnotationReader();
$mappingClient = $annotationReader
->getPropertyAnnotation($property, 'MyClass\Annotation\MappingClient');
我还需要解析属性类型,这在@var array
中描述。我知道可以使用$property->getDocComment()
上的正则表达式来解析它。但是如果getPropertyAnnotation()
忽略了@var
和其他标准声明,我该如何只使用Symfony类来完成?是否有更加优雅的方法?