/** * 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()); }
/** * 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); }