ApiGen\Parser\Reflection\Extractors\AnnotationPropertyExtractor::extractFromReflection PHP Method

extractFromReflection() public method

public extractFromReflection ( ApiGen\Contracts\Parser\Reflection\ClassReflectionInterface $classReflection )
$classReflection ApiGen\Contracts\Parser\Reflection\ClassReflectionInterface
    public function extractFromReflection(ClassReflectionInterface $classReflection)
    {
        $this->classReflection = $classReflection;
        $properties = [];
        foreach (['property', 'property-read', 'property-write'] as $annotationName) {
            if ($this->classReflection->hasAnnotation($annotationName)) {
                foreach ($this->classReflection->getAnnotation($annotationName) as $annotation) {
                    $properties += $this->processMagicPropertyAnnotation($annotation, $annotationName);
                }
            }
        }
        return $properties;
    }

Usage Example

 /**
  * {@inheritdoc}
  */
 public function getOwnMagicProperties()
 {
     if ($this->ownMagicProperties === null) {
         $this->ownMagicProperties = [];
         if ($this->classReflection->isVisibilityLevelPublic() && $this->classReflection->getDocComment()) {
             $extractor = new AnnotationPropertyExtractor($this->classReflection->getReflectionFactory());
             $this->ownMagicProperties += $extractor->extractFromReflection($this->classReflection);
         }
     }
     return $this->ownMagicProperties;
 }