class SimpleAnnotationReader
Same name in other branches
- 9 core/lib/Drupal/Component/Annotation/Doctrine/SimpleAnnotationReader.php \Drupal\Component\Annotation\Doctrine\SimpleAnnotationReader
- 8.9.x core/lib/Drupal/Component/Annotation/Doctrine/SimpleAnnotationReader.php \Drupal\Component\Annotation\Doctrine\SimpleAnnotationReader
- 10 core/lib/Drupal/Component/Annotation/Doctrine/SimpleAnnotationReader.php \Drupal\Component\Annotation\Doctrine\SimpleAnnotationReader
Simple Annotation Reader.
Drupal adds its own version of DocParser and allows for ignoring common annotations.
@internal
Hierarchy
- class \Drupal\Component\Annotation\Doctrine\SimpleAnnotationReader implements \Doctrine\Common\Annotations\Reader
Expanded class hierarchy of SimpleAnnotationReader
3 files declare their use of SimpleAnnotationReader
- AnnotatedClassDiscovery.php in core/
lib/ Drupal/ Component/ Annotation/ Plugin/ Discovery/ AnnotatedClassDiscovery.php - AttributeDiscoveryWithAnnotations.php in core/
lib/ Drupal/ Core/ Plugin/ Discovery/ AttributeDiscoveryWithAnnotations.php - DCOM58Test.php in core/
tests/ Drupal/ Tests/ Component/ Annotation/ Doctrine/ Ticket/ DCOM58Test.php
File
-
core/
lib/ Drupal/ Component/ Annotation/ Doctrine/ SimpleAnnotationReader.php, line 39
Namespace
Drupal\Component\Annotation\DoctrineView source
final class SimpleAnnotationReader implements Reader {
protected $ignoredAnnotations = [
'addtogroup' => TRUE,
'code' => TRUE,
'defgroup' => TRUE,
'deprecated' => TRUE,
'endcode' => TRUE,
'endlink' => TRUE,
'file' => TRUE,
'ingroup' => TRUE,
'group' => TRUE,
'link' => TRUE,
'mainpage' => TRUE,
'param' => TRUE,
'ref' => TRUE,
'return' => TRUE,
'section' => TRUE,
'see' => TRUE,
'subsection' => TRUE,
'throws' => TRUE,
'todo' => TRUE,
'var' => TRUE,
'{' => TRUE,
'}' => TRUE,
];
/**
* @var DocParser
*/
private $parser;
/**
* Constructor.
*
* Initializes a new SimpleAnnotationReader.
*/
public function __construct() {
$this->parser = new DocParser();
$this->parser
->setIgnoreNotImportedAnnotations(true);
$this->parser
->setIgnoredAnnotationNames($this->ignoredAnnotations);
}
/**
* Adds a namespace in which we will look for annotations.
*
* @param string $namespace
*
* @return void
*/
public function addNamespace($namespace) {
$this->parser
->addNamespace($namespace);
}
/**
* {@inheritDoc}
*/
public function getClassAnnotations(\ReflectionClass $class) {
return $this->parser
->parse($class->getDocComment(), 'class ' . $class->getName());
}
/**
* {@inheritDoc}
*/
public function getMethodAnnotations(\ReflectionMethod $method) {
return $this->parser
->parse($method->getDocComment(), 'method ' . $method->getDeclaringClass()->name . '::' . $method->getName() . '()');
}
/**
* {@inheritDoc}
*/
public function getPropertyAnnotations(\ReflectionProperty $property) {
return $this->parser
->parse($property->getDocComment(), 'property ' . $property->getDeclaringClass()->name . '::$' . $property->getName());
}
/**
* {@inheritDoc}
*/
public function getClassAnnotation(\ReflectionClass $class, $annotationName) {
foreach ($this->getClassAnnotations($class) as $annotation) {
if ($annotation instanceof $annotationName) {
return $annotation;
}
}
return null;
}
/**
* {@inheritDoc}
*/
public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) {
foreach ($this->getMethodAnnotations($method) as $annotation) {
if ($annotation instanceof $annotationName) {
return $annotation;
}
}
return null;
}
/**
* {@inheritDoc}
*/
public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) {
foreach ($this->getPropertyAnnotations($property) as $annotation) {
if ($annotation instanceof $annotationName) {
return $annotation;
}
}
return null;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
SimpleAnnotationReader::$ignoredAnnotations | protected | property | |
SimpleAnnotationReader::$parser | private | property | |
SimpleAnnotationReader::addNamespace | public | function | Adds a namespace in which we will look for annotations. |
SimpleAnnotationReader::getClassAnnotation | public | function | |
SimpleAnnotationReader::getClassAnnotations | public | function | |
SimpleAnnotationReader::getMethodAnnotation | public | function | |
SimpleAnnotationReader::getMethodAnnotations | public | function | |
SimpleAnnotationReader::getPropertyAnnotation | public | function | |
SimpleAnnotationReader::getPropertyAnnotations | public | function | |
SimpleAnnotationReader::__construct | public | function | Constructor. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.