Пример #1
0
 /**
  * Given an array of Reflections, try to find the identifier
  *
  * @param Reflection[] $reflections
  * @param Identifier $identifier
  * @return Reflection
  */
 private function findInArray($reflections, Identifier $identifier)
 {
     foreach ($reflections as $reflection) {
         if ($reflection->getName() === $identifier->getName()) {
             return $reflection;
         }
     }
     throw new \UnexpectedValueException(sprintf('%s "%s" could not be found to load', $identifier->getType()->getName(), $identifier->getName()));
 }
 /**
  * Attempts to locate the specified identifier.
  *
  * @param Identifier $identifier
  * @return string
  */
 private function locateIdentifier(Identifier $identifier)
 {
     if ($identifier->isClass()) {
         return $this->locateClassByName($identifier->getName());
     }
     if ($identifier->isFunction()) {
         return $this->locateFunctionByName($identifier->getName());
     }
 }
 /**
  * Attempts to locate the specified identifier
  *
  * @param Identifier $identifier
  * @return string
  */
 private function locateIdentifier(Identifier $identifier)
 {
     if ($identifier->isClass()) {
         return $this->locateClassByName($identifier->getName());
     }
     if ($identifier->isFunction()) {
         return $this->locateFunctionByName($identifier->getName());
     }
     throw new Exception\UnloadableIdentifierType('AutoloadSourceLocator cannot locate ' . $identifier->getType()->getName());
 }
 /**
  * @param Identifier $identifier
  * @return LocatedSource
  */
 public function __invoke(Identifier $identifier)
 {
     if ($identifier->getType()->getName() !== IdentifierType::IDENTIFIER_CLASS) {
         throw new \LogicException(__CLASS__ . ' can only be used to locate classes');
     }
     $filename = $this->classLoader->findFile($identifier->getName());
     if (!$filename) {
         throw new \UnexpectedValueException(sprintf('Could not locate file to load "%s"', $identifier->getName()));
     }
     return new LocatedSource(file_get_contents($filename), $filename);
 }
 public function testGetName()
 {
     $beforeName = '\\Some\\Thing\\Here';
     $afterName = 'Some\\Thing\\Here';
     $identifier = new Identifier($beforeName, new IdentifierType(IdentifierType::IDENTIFIER_CLASS));
     $this->assertSame($afterName, $identifier->getName());
 }
Пример #6
0
 /**
  * Given an array of Reflections, try to find the identifier.
  *
  * @param Reflection[] $reflections
  * @param Identifier $identifier
  * @return Reflection
  */
 private function findInArray($reflections, Identifier $identifier)
 {
     foreach ($reflections as $reflection) {
         if ($reflection->getName() === $identifier->getName()) {
             return $reflection;
         }
     }
     throw Exception\IdentifierNotFound::fromIdentifier($identifier);
 }
 /**
  * @param Identifier $identifier
  * @return LocatedSource|null
  */
 public function __invoke(Identifier $identifier)
 {
     if ($identifier->getType()->getName() !== IdentifierType::IDENTIFIER_CLASS) {
         return null;
     }
     $filename = $this->classLoader->findFile($identifier->getName());
     if (!$filename) {
         return null;
     }
     return new LocatedSource(file_get_contents($filename), $filename);
 }
 /**
  * @param Identifier $identifier
  *
  * @return null|string
  */
 private function getInternalReflectionClassName(Identifier $identifier)
 {
     if (!$identifier->isClass()) {
         return null;
     }
     $name = $identifier->getName();
     if (!(class_exists($name, false) || interface_exists($name, false) || trait_exists($name, false))) {
         return null;
         // not an available internal class
     }
     $reflection = new \ReflectionClass($name);
     return $reflection->getFileName() ? $reflection->getName() : null;
 }
 public static function fromIdentifier(Identifier $identifier)
 {
     return new self(sprintf('%s "%s" could not be found in the located source', $identifier->getType()->getName(), $identifier->getName()), $identifier);
 }