services[ $name ]); } /** * @param string $name * * @return mixed * @throws Exception */ public function get($name) { if (! $this->has($name)) { throw new Exception(sprintf('No service named %s was registered.', $name)); } $service = $this->services[ $name ]; // is this a resolvable service? if (is_callable($service)) { // resolve service if it's not resolved yet if (! isset($this->resolved_services[ $name ])) { $this->resolved_services[ $name ] = call_user_func($service); } return $this->resolved_services[ $name ]; } return $this->services[ $name ]; } /** * (PHP 5 >= 5.0.0)
* Whether a offset exists * @link http://php.net/manual/en/arrayaccess.offsetexists.php * * @param mixed $offset

* An offset to check for. *

* * @return boolean true on success or false on failure. *

*

* The return value will be casted to boolean if non-boolean was returned. */ #[\ReturnTypeWillChange] public function offsetExists($offset) { return $this->has($offset); } /** * (PHP 5 >= 5.0.0)
* Offset to retrieve * @link http://php.net/manual/en/arrayaccess.offsetget.php * * @param mixed $offset

* The offset to retrieve. *

* * @return mixed Can return all value types. */ #[\ReturnTypeWillChange] public function offsetGet($offset) { return $this->get($offset); } /** * (PHP 5 >= 5.0.0)
* Offset to set * @link http://php.net/manual/en/arrayaccess.offsetset.php * * @param mixed $offset

* The offset to assign the value to. *

* @param mixed $value

* The value to set. *

* * @return void */ #[\ReturnTypeWillChange] public function offsetSet($offset, $value) { $this->services[ $offset ] = $value; } /** * (PHP 5 >= 5.0.0)
* Offset to unset * @link http://php.net/manual/en/arrayaccess.offsetunset.php * * @param mixed $offset

* The offset to unset. *

* * @return void */ #[\ReturnTypeWillChange] public function offsetUnset($offset) { unset($this->services[ $offset ]); } }