summaryrefslogtreecommitdiff
path: root/src/Container/Container.php
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2017-09-21 18:37:37 +0200
committerIgor Scheller <igor.scheller@igorshp.de>2017-09-21 18:37:37 +0200
commit212760d4c93ce14e9ae34ef207bbb8f48a7dd9a7 (patch)
tree3fe9dd267bf3584f206ae589c1b168a58eabafb2 /src/Container/Container.php
parent945fcb079a219fa29e8f6ee1afc3f1c0c5c822cb (diff)
Changed Container to Illuminate/Container
@see https://laravel.com/docs/5.5/container @see https://davejamesmiller.com/2017/06/15/laravel-illuminate-container-in-depth
Diffstat (limited to 'src/Container/Container.php')
-rw-r--r--src/Container/Container.php110
1 files changed, 2 insertions, 108 deletions
diff --git a/src/Container/Container.php b/src/Container/Container.php
index 59a17a04..44c57b6f 100644
--- a/src/Container/Container.php
+++ b/src/Container/Container.php
@@ -2,115 +2,9 @@
namespace Engelsystem\Container;
-use Psr\Container\ContainerExceptionInterface;
+use Illuminate\Container\Container as IlluminateContainer;
use Psr\Container\ContainerInterface;
-use Psr\Container\NotFoundExceptionInterface;
-class Container implements ContainerInterface
+class Container extends IlluminateContainer implements ContainerInterface
{
- /**
- * The globally available container
- *
- * @var static
- */
- protected static $instance;
-
- /**
- * Contains the shared instances
- *
- * @var mixed[]
- */
- protected $instances = [];
-
- /**
- * Finds an entry of the container by its identifier and returns it
- *
- * @param string $id Identifier of the entry to look for
- *
- * @throws NotFoundExceptionInterface No entry was found for **this** identifier
- * @throws ContainerExceptionInterface Error while retrieving the entry
- *
- * @return mixed Entry
- */
- public function get($id)
- {
- if ($this->has($id)) {
- return $this->resolve($id);
- }
-
- throw new NotFoundException(sprintf('The entry with the id "%s" could not be found', $id));
- }
-
- /**
- * Register a shared entry in the container
- *
- * @param string $abstract Identifier of the entry to set
- * @param mixed $instance Entry
- */
- public function instance($abstract, $instance)
- {
- $this->singleton($abstract, $instance);
- }
-
- /**
- * Register a shared entry as singleton in the container
- *
- * @param string $abstract
- * @param mixed $instance
- */
- public function singleton($abstract, $instance)
- {
- $this->instances[$abstract] = $instance;
- }
-
- /**
- * Returns true if the container can return an entry for the given identifier
- * Returns false otherwise
- *
- * `has($id)` returning true does not mean that `get($id)` will not throw an exception
- * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`
- *
- * @param string $id Identifier of the entry to look for
- *
- * @return bool
- */
- public function has($id)
- {
- return isset($this->instances[$id]);
- }
-
- /**
- * Resolve the requested object
- *
- * @param string $abstract
- * @return mixed
- */
- protected function resolve($abstract)
- {
- return $this->instances[$abstract];
- }
-
- /**
- * Get the globally available instance of the container
- *
- * @return self
- */
- public static function getInstance()
- {
- if (is_null(static::$instance)) {
- static::$instance = new static;
- }
-
- return static::$instance;
- }
-
- /**
- * Set the globally available instance of the container
- *
- * @param Container $container
- */
- public static function setInstance(Container $container)
- {
- static::$instance = $container;
- }
}