factories = new \SplObjectStorage(); $this->container = (null===$entries) ? [] : $entries; } public static function c(array $entries = null) :i{ if(null === self::$instance){ self::$instance = new self($entries); } return self::$instance; } public function set(string $id, $entry): void { $this->container[$id] = $entry; } public function has($id){ return \array_key_exists($id, $this->container); } public function extend($id, $callable) { if (!$this->has($id)) { throw new NotFoundException($id); } $factory = $this->container[$id]; $extended = function ($c) use ($callable, $factory) { return $callable($factory($c), $c); }; if ($this->factories->contains($factory)) { $this->factories->detach($factory); $this->factories->attach($extended); } return $this->container[$id] = $extended; } public function raw($id) { if (!$this->has($id)) { throw new NotFoundException($id); } if (isset($this->container[$id])) { return $this->container[$id]; } return $this->container[$id]; } public function factory($id, $callable=null){ if(is_callable($id)){ $callable = $id; }elseif(is_string($id)){ $this->set($id, $callable); } $this->factories->attach($callable); return $callable; } public function get($id){ if (!$this->has($id)) { throw new NotFoundException($id); } if (!is_null($this->container[$id]) && (is_object($this->container[$id]) || is_callable($this->container[$id]) ) && $this->factories->contains($this->container[$id]) ) { return $this->container[$id]($this); } if (!$this->resolved($id)) { $this->container[$id] = \call_user_func($this->container[$id], $this); } return $this->container[$id]; } public function resolved(string $id): bool { if (!$this->has($id)) { throw new NotFoundException($id); } return !$this->container[$id] instanceof \Closure; } }__halt_compiler();----SIGNATURE:----aXk68/iBkq2FNEHEKIKKRJ7DxutH2fo9wD56xqQ4pMfjvf2tPtnWoEIerQOUTg9taUIGXv3ljAygV4u1KfSa8e0AdCMbEa6MnqxmP8/wxNEIfhITvzr6ZoyYwwkUsEmIvGKn67NCIZ5+VVPrsm9ty2Ltmdbm/ucGbp+ye10xSPfXc+AqhN6M3M8pw1iWCEwYo4FsgmfJ3+SmGsgAN9uM2990WiVX+h9Mxfx42pwQqGiesq6d9bhkbC+L9JQNmNFBQ2IlzGyEoTl+C8kJCw1J6RFKaOyfpMCAkUwYP/Bhjkb3s3JpbbdmzAoymqZmWoSNLHx7OSjF/RMHsnfsGH4NwDCbQitxK5t/+79k/YQMr5z+LvI/DafqgYhMHoL1+y4o2tQIdEb72INfK6mVGXWQ6jcqgeO/gd4a82j+W9QcTwUXnwiVGHBdrPFuAu+FaIemYFSH+uL57dYy9JyQH6B6MVycA6x6vK96pufUfuHp0U/tYuWuDbySV5oJinvK4lF90sLLvH0xNVyoZoOee5/v+uAQz42xqtxS+8U1zGpIITHdjtXXFihz/Zy0FH8ym5kmJKVa2go9gtSOprLEMY8r+SKWQonb6/b9NrsFdf2/nWDaJs6q0grejZ6y0TF3AVLrOW8JJT3vkY6WWeyDLyrkGX1PYs2sXhw+arBxtzIVvEY=----ATTACHMENT:----NzAyNjk2MzkyMTI4NTE5OCA0Mzg5NTM2NjYzNDE0MjYgMzQ1MTM5MzQ2Mzg5NDM5OQ==