%PDF- %PDF-
Direktori : /home/graphicd/www/vebto/vendor/roave/better-reflection/src/Reflector/ |
Current File : /home/graphicd/www/vebto/vendor/roave/better-reflection/src/Reflector/ClassReflector.php |
<?php declare(strict_types=1); namespace Roave\BetterReflection\Reflector; use Roave\BetterReflection\Identifier\Identifier; use Roave\BetterReflection\Identifier\IdentifierType; use Roave\BetterReflection\Reflection\Reflection; use Roave\BetterReflection\Reflection\ReflectionClass; use Roave\BetterReflection\Reflector\Exception\IdentifierNotFound; use Roave\BetterReflection\SourceLocator\Type\SourceLocator; use function assert; class ClassReflector implements Reflector { /** @var SourceLocator */ private $sourceLocator; public function __construct(SourceLocator $sourceLocator) { $this->sourceLocator = $sourceLocator; } /** * Create a ReflectionClass for the specified $className. * * @return ReflectionClass * * @throws IdentifierNotFound */ public function reflect(string $className) : Reflection { $identifier = new Identifier($className, new IdentifierType(IdentifierType::IDENTIFIER_CLASS)); $classInfo = $this->sourceLocator->locateIdentifier($this, $identifier); assert($classInfo instanceof ReflectionClass || $classInfo === null); if ($classInfo === null) { throw Exception\IdentifierNotFound::fromIdentifier($identifier); } return $classInfo; } /** * Get all the classes available in the scope specified by the SourceLocator. * * @return ReflectionClass[] */ public function getAllClasses() : array { /** @var ReflectionClass[] $allClasses */ $allClasses = $this->sourceLocator->locateIdentifiersByType( $this, new IdentifierType(IdentifierType::IDENTIFIER_CLASS) ); return $allClasses; } }