diff options
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/di/service_collection.php | 11 | ||||
| -rw-r--r-- | phpBB/phpbb/di/service_collection_iterator.php | 55 | 
2 files changed, 9 insertions, 57 deletions
| diff --git a/phpBB/phpbb/di/service_collection.php b/phpBB/phpbb/di/service_collection.php index a8eeeab8bb..82ca9bf679 100644 --- a/phpBB/phpbb/di/service_collection.php +++ b/phpBB/phpbb/di/service_collection.php @@ -40,7 +40,7 @@ class service_collection extends \ArrayObject  	*/  	public function getIterator()  	{ -		return new service_collection_iterator($this->container, $this); +		return new service_collection_iterator($this);  	}  	// Because of a PHP issue we have to redefine offsetExists @@ -63,14 +63,7 @@ class service_collection extends \ArrayObject  	*/  	public function offsetGet($index)  	{ -		$task = parent::offsetGet($index); -		if ($task === null) -		{ -			$task = $this->container->get($index); -			$this->offsetSet($index, $task); -		} - -		return $task; +		return $this->container->get($index);  	}  	/** diff --git a/phpBB/phpbb/di/service_collection_iterator.php b/phpBB/phpbb/di/service_collection_iterator.php index 54aefca1f7..0d031ab52d 100644 --- a/phpBB/phpbb/di/service_collection_iterator.php +++ b/phpBB/phpbb/di/service_collection_iterator.php @@ -13,75 +13,34 @@  namespace phpbb\di; -use Symfony\Component\DependencyInjection\ContainerInterface; -  /**  * Iterator which loads the services when they are requested  */  class service_collection_iterator extends \ArrayIterator  {  	/** -	* @var \Symfony\Component\DependencyInjection\ContainerInterface +	* @var \phpbb\di\service_collection  	*/ -	protected $container; +	protected $collection;  	/**  	* Construct an ArrayIterator for service_collection  	* -	* @param ContainerInterface $container Container object -	* @param array $array The array or object to be iterated on. +	* @param \phpbb\di\service_collection $collection The collection to iterate over  	* @param int $flags Flags to control the behaviour of the ArrayObject object.  	* @see ArrayObject::setFlags()  	*/ -	public function __construct(ContainerInterface $container, $array = array(), $flags = 0) -	{ -		parent::__construct($array, $flags); -		$this->container = $container; -	} - -	/** -	* {@inheritdoc} -	*/ -	public function offsetGet($index) +	public function __construct(service_collection $collection, $flags = 0)  	{ -		$task = parent::offsetGet($index); -		if ($task === null) -		{ -			$task = $this->container->get($index); -			$this->offsetSet($index, $task); -		} - -		return $task; +		parent::__construct($collection, $flags); +		$this->collection = $collection;  	} -	// Because of a PHP issue we have to redefine offsetExists -	// (even with a call to the parent): -	// 		https://bugs.php.net/bug.php?id=66834 -	// 		https://bugs.php.net/bug.php?id=67067 -	// But it triggers a sniffer issue that we have to skip -	// @codingStandardsIgnoreStart -	/** -	* {@inheritdoc} -	*/ -	public function offsetExists($index) -	{ -		parent::offsetExists($index); -	} -	// @codingStandardsIgnoreEnd -  	/**  	* {@inheritdoc}  	*/  	public function current()  	{ -		$task = parent::current(); -		if ($task === null) -		{ -			$name = $this->key(); -			$task = $this->container->get($name); -			$this->offsetSet($name, $task); -		} - -		return $task; +		return $this->collection->offsetGet($this->key());  	}  } | 
