Chris@2: , Sebastian Heuer , Sebastian Bergmann Chris@2: * Chris@2: * For the full copyright and license information, please view the LICENSE Chris@2: * file that was distributed with this source code. Chris@2: */ Chris@2: Chris@2: namespace PharIo\Manifest; Chris@2: Chris@2: class ManifestLoader { Chris@2: /** Chris@2: * @param string $filename Chris@2: * Chris@2: * @return Manifest Chris@2: * Chris@2: * @throws ManifestLoaderException Chris@2: */ Chris@2: public static function fromFile($filename) { Chris@2: try { Chris@2: return (new ManifestDocumentMapper())->map( Chris@2: ManifestDocument::fromFile($filename) Chris@2: ); Chris@2: } catch (Exception $e) { Chris@2: throw new ManifestLoaderException( Chris@2: sprintf('Loading %s failed.', $filename), Chris@2: $e->getCode(), Chris@2: $e Chris@2: ); Chris@2: } Chris@2: } Chris@2: Chris@2: /** Chris@2: * @param string $filename Chris@2: * Chris@2: * @return Manifest Chris@2: * Chris@2: * @throws ManifestLoaderException Chris@2: */ Chris@2: public static function fromPhar($filename) { Chris@2: return self::fromFile('phar://' . $filename . '/manifest.xml'); Chris@2: } Chris@2: Chris@2: /** Chris@2: * @param string $manifest Chris@2: * Chris@2: * @return Manifest Chris@2: * Chris@2: * @throws ManifestLoaderException Chris@2: */ Chris@2: public static function fromString($manifest) { Chris@2: try { Chris@2: return (new ManifestDocumentMapper())->map( Chris@2: ManifestDocument::fromString($manifest) Chris@2: ); Chris@2: } catch (Exception $e) { Chris@2: throw new ManifestLoaderException( Chris@2: 'Processing string failed', Chris@2: $e->getCode(), Chris@2: $e Chris@2: ); Chris@2: } Chris@2: } Chris@2: }