From a0985c7a22014ac1b354f95195d26fd002bf1374 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Wed, 21 May 2014 23:09:25 +0200 Subject: [ticket/12575] Move service_collection_iterator to its own file PHPBB3-12575 --- phpBB/phpbb/di/service_collection_iterator.php | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 phpBB/phpbb/di/service_collection_iterator.php (limited to 'phpBB/phpbb/di/service_collection_iterator.php') diff --git a/phpBB/phpbb/di/service_collection_iterator.php b/phpBB/phpbb/di/service_collection_iterator.php new file mode 100644 index 0000000000..ace66d1906 --- /dev/null +++ b/phpBB/phpbb/di/service_collection_iterator.php @@ -0,0 +1,65 @@ +container = $container; + } + + /** + * {@inheritdoc} + */ + public function offsetGet($index) + { + if (($task = parent::offsetGet($index)) == null) + { + $task = $this->container->get($index); + $this->offsetSet($index, $task); + } + + return $task; + } + + /** + * {@inheritdoc} + */ + public function current() + { + if (($task = parent::current()) == null) + { + $name = $this->key(); + $task = $this->container->get($name); + $this->offsetSet($name, $task); + } + + return $task; + } +} -- cgit v1.2.1