final class SimpleAnnotationReader in Drupal 9
Same name and namespace in other branches
- 8 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
2 files declare their use of SimpleAnnotationReader
- AnnotatedClassDiscovery.php in core/
lib/ Drupal/ Component/ Annotation/ Plugin/ Discovery/ AnnotatedClassDiscovery.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 - This class is a near-copy of Doctrine\Common\Annotations\SimpleAnnotationReader, which is part of the Doctrine project: <http://www.doctrine-project.org>. It was copied from version 1.2.7.
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 $annot) {
if ($annot instanceof $annotationName) {
return $annot;
}
}
return null;
}
/**
* {@inheritDoc}
*/
public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) {
foreach ($this
->getMethodAnnotations($method) as $annot) {
if ($annot instanceof $annotationName) {
return $annot;
}
}
return null;
}
/**
* {@inheritDoc}
*/
public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) {
foreach ($this
->getPropertyAnnotations($property) as $annot) {
if ($annot instanceof $annotationName) {
return $annot;
}
}
return null;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
SimpleAnnotationReader:: |
protected | property | ||
SimpleAnnotationReader:: |
private | property | ||
SimpleAnnotationReader:: |
public | function | Adds a namespace in which we will look for annotations. | |
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | ||
SimpleAnnotationReader:: |
public | function | Constructor. |