container = $container; } /** * {@inheritdoc} */ public function offsetGet($index) { $task = parent::offsetGet($index); if ($task == null) { $task = $this->container->get($index); $this->offsetSet($index, $task); } return $task; } // 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; } }