diff options
Diffstat (limited to 'phpBB/phpbb/di/service_collection.php')
| -rw-r--r-- | phpBB/phpbb/di/service_collection.php | 79 | 
1 files changed, 79 insertions, 0 deletions
diff --git a/phpBB/phpbb/di/service_collection.php b/phpBB/phpbb/di/service_collection.php new file mode 100644 index 0000000000..82ca9bf679 --- /dev/null +++ b/phpBB/phpbb/di/service_collection.php @@ -0,0 +1,79 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\di; + +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** +* Collection of services to be configured at container compile time. +*/ +class service_collection extends \ArrayObject +{ +	/** +	* @var \Symfony\Component\DependencyInjection\ContainerInterface +	*/ +	protected $container; + +	/** +	* Constructor +	* +	* @param ContainerInterface $container Container object +	*/ +	public function __construct(ContainerInterface $container) +	{ +		$this->container = $container; +	} + +	/** +	* {@inheritdoc} +	*/ +	public function getIterator() +	{ +		return new service_collection_iterator($this); +	} + +	// 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) +	{ +		return parent::offsetExists($index); +	} +	// @codingStandardsIgnoreEnd + +	/** +	* {@inheritdoc} +	*/ +	public function offsetGet($index) +	{ +		return $this->container->get($index); +	} + +	/** +	* Add a service to the collection +	* +	* @param string $name The service name +	* @return null +	*/ +	public function add($name) +	{ +		$this->offsetSet($name, null); +	} +}  | 
