Source of file PropertyReflection.php
Size: 2,851 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Code/Reflection/PropertyReflection.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Code\Reflection; use ReflectionProperty as PhpReflectionProperty; use Zend\Code\Annotation\AnnotationManager; use Zend\Code\Scanner\AnnotationScanner; use Zend\Code\Scanner\CachingFileScanner; /** * @todo implement line numbers */ class PropertyReflection extends PhpReflectionProperty implements ReflectionInterface { /** * @var AnnotationScanner */ protected $annotations; /** * Get declaring class reflection object * * @return ClassReflection */ public function getDeclaringClass() { $phpReflection = parent::getDeclaringClass(); $zendReflection = new ClassReflection($phpReflection->getName()); unset($phpReflection); return $zendReflection; } /** * Get DocBlock comment * * @return string|false False if no DocBlock defined */ public function getDocComment() { return parent::getDocComment(); } /** * @return false|DocBlockReflection */ public function getDocBlock() { if (!($docComment = $this->getDocComment())) { return false; } $docBlockReflection = new DocBlockReflection($docComment); return $docBlockReflection; } /** * @param AnnotationManager $annotationManager * @return AnnotationScanner */ public function getAnnotations(AnnotationManager $annotationManager) { if (null !== $this->annotations) { return $this->annotations; } if (($docComment = $this->getDocComment()) == '') { return false; } $class = $this->getDeclaringClass(); $cachingFileScanner = $this->createFileScanner($class->getFileName()); $nameInformation = $cachingFileScanner->getClassNameInformation($class->getName()); if (!$nameInformation) { return false; } $this->annotations = new AnnotationScanner($annotationManager, $docComment, $nameInformation); return $this->annotations; } public function toString() { return $this->__toString(); } /** * Creates a new FileScanner instance. * * By having this as a seperate method it allows the method to be overridden * if a different FileScanner is needed. * * @param string $filename * * @return FileScanner */ protected function createFileScanner($filename) { return new CachingFileScanner($filename); } } |