115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace Doctrine\Common\Annotations; | ||
|  | 
 | ||
|  | use ReflectionClass; | ||
|  | use ReflectionMethod; | ||
|  | use ReflectionProperty; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Simple Annotation Reader. | ||
|  |  * | ||
|  |  * This annotation reader is intended to be used in projects where you have | ||
|  |  * full-control over all annotations that are available. | ||
|  |  * | ||
|  |  * @deprecated Deprecated in favour of using AnnotationReader | ||
|  |  */ | ||
|  | class SimpleAnnotationReader implements Reader | ||
|  | { | ||
|  |     /** @var DocParser */ | ||
|  |     private $parser; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Initializes a new SimpleAnnotationReader. | ||
|  |      */ | ||
|  |     public function __construct() | ||
|  |     { | ||
|  |         $this->parser = new DocParser(); | ||
|  |         $this->parser->setIgnoreNotImportedAnnotations(true); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 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; | ||
|  |     } | ||
|  | } |