123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace TYPO3\PharStreamWrapper;
- /*
- * This file is part of the TYPO3 project.
- *
- * It is free software; you can redistribute it and/or modify it under the terms
- * of the MIT License (MIT). For the full copyright and license information,
- * please read the LICENSE file that was distributed with this source code.
- *
- * The TYPO3 project - inspiring people to share!
- */
- use TYPO3\PharStreamWrapper\Resolver\PharInvocation;
- use TYPO3\PharStreamWrapper\Resolver\PharInvocationCollection;
- use TYPO3\PharStreamWrapper\Resolver\PharInvocationResolver;
- class Manager
- {
- /**
- * @var self
- */
- private static $instance;
- /**
- * @var Behavior
- */
- private $behavior;
- /**
- * @var Resolvable
- */
- private $resolver;
- /**
- * @var Collectable
- */
- private $collection;
- /**
- * @param Behavior $behaviour
- * @param Resolvable $resolver
- * @param Collectable $collection
- * @return self
- */
- public static function initialize(
- Behavior $behaviour,
- Resolvable $resolver = null,
- Collectable $collection = null
- ) {
- if (self::$instance === null) {
- self::$instance = new self($behaviour, $resolver, $collection);
- return self::$instance;
- }
- throw new \LogicException(
- 'Manager can only be initialized once',
- 1535189871
- );
- }
- /**
- * @return self
- */
- public static function instance()
- {
- if (self::$instance !== null) {
- return self::$instance;
- }
- throw new \LogicException(
- 'Manager needs to be initialized first',
- 1535189872
- );
- }
- /**
- * @return bool
- */
- public static function destroy()
- {
- if (self::$instance === null) {
- return false;
- }
- self::$instance = null;
- return true;
- }
- /**
- * @param Behavior $behaviour
- * @param Resolvable $resolver
- * @param Collectable $collection
- */
- private function __construct(
- Behavior $behaviour,
- Resolvable $resolver = null,
- Collectable $collection = null
- ) {
- if ($collection === null) {
- $collection = new PharInvocationCollection();
- }
- if ($resolver === null) {
- $resolver = new PharInvocationResolver();
- }
- $this->collection = $collection;
- $this->resolver = $resolver;
- $this->behavior = $behaviour;
- }
- /**
- * @param string $path
- * @param string $command
- * @return bool
- */
- public function assert($path, $command)
- {
- return $this->behavior->assert($path, $command);
- }
- /**
- * @param string $path
- * @param null|int $flags
- * @return null|PharInvocation
- */
- public function resolve($path, $flags = null)
- {
- return $this->resolver->resolve($path, $flags);
- }
- /**
- * @return Collectable
- */
- public function getCollection()
- {
- return $this->collection;
- }
- }
|