123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
-
- namespace Illuminate\Contracts\Container;
-
- use Closure;
- use Psr\Container\ContainerInterface;
-
- interface Container extends ContainerInterface
- {
- /**
- * Determine if the given abstract type has been bound.
- *
- * @param string $abstract
- * @return bool
- */
- public function bound($abstract);
-
- /**
- * Alias a type to a different name.
- *
- * @param string $abstract
- * @param string $alias
- * @return void
- */
- public function alias($abstract, $alias);
-
- /**
- * Assign a set of tags to a given binding.
- *
- * @param array|string $abstracts
- * @param array|mixed ...$tags
- * @return void
- */
- public function tag($abstracts, $tags);
-
- /**
- * Resolve all of the bindings for a given tag.
- *
- * @param string $tag
- * @return array
- */
- public function tagged($tag);
-
- /**
- * Register a binding with the container.
- *
- * @param string $abstract
- * @param \Closure|string|null $concrete
- * @param bool $shared
- * @return void
- */
- public function bind($abstract, $concrete = null, $shared = false);
-
- /**
- * Register a binding if it hasn't already been registered.
- *
- * @param string $abstract
- * @param \Closure|string|null $concrete
- * @param bool $shared
- * @return void
- */
- public function bindIf($abstract, $concrete = null, $shared = false);
-
- /**
- * Register a shared binding in the container.
- *
- * @param string $abstract
- * @param \Closure|string|null $concrete
- * @return void
- */
- public function singleton($abstract, $concrete = null);
-
- /**
- * "Extend" an abstract type in the container.
- *
- * @param string $abstract
- * @param \Closure $closure
- * @return void
- *
- * @throws \InvalidArgumentException
- */
- public function extend($abstract, Closure $closure);
-
- /**
- * Register an existing instance as shared in the container.
- *
- * @param string $abstract
- * @param mixed $instance
- * @return mixed
- */
- public function instance($abstract, $instance);
-
- /**
- * Define a contextual binding.
- *
- * @param string $concrete
- * @return \Illuminate\Contracts\Container\ContextualBindingBuilder
- */
- public function when($concrete);
-
- /**
- * Get a closure to resolve the given type from the container.
- *
- * @param string $abstract
- * @return \Closure
- */
- public function factory($abstract);
-
- /**
- * Resolve the given type from the container.
- *
- * @param string $abstract
- * @param array $parameters
- * @return mixed
- */
- public function make($abstract, array $parameters = []);
-
- /**
- * Call the given Closure / class@method and inject its dependencies.
- *
- * @param callable|string $callback
- * @param array $parameters
- * @param string|null $defaultMethod
- * @return mixed
- */
- public function call($callback, array $parameters = [], $defaultMethod = null);
-
- /**
- * Determine if the given abstract type has been resolved.
- *
- * @param string $abstract
- * @return bool
- */
- public function resolved($abstract);
-
- /**
- * Register a new resolving callback.
- *
- * @param \Closure|string $abstract
- * @param \Closure|null $callback
- * @return void
- */
- public function resolving($abstract, Closure $callback = null);
-
- /**
- * Register a new after resolving callback.
- *
- * @param \Closure|string $abstract
- * @param \Closure|null $callback
- * @return void
- */
- public function afterResolving($abstract, Closure $callback = null);
- }
|