Container
class Container implements ArrayAccess, Container (View source)
Properties
static protected Container | $instance | The current globally available container (if any). | |
protected bool[] | $resolved | An array of the types that have been resolved. | |
protected array[] | $bindings | The container's bindings. | |
protected Closure[] | $methodBindings | The container's method bindings. | |
protected object[] | $instances | The container's shared instances. | |
protected string[] | $aliases | The registered type aliases. | |
protected array[] | $abstractAliases | The registered aliases keyed by the abstract name. | |
protected array[] | $extenders | The extension closures for services. | |
protected array[] | $tags | All of the registered tags. | |
protected array[] | $buildStack | The stack of concretions currently being built. | |
protected array[] | $with | The parameter override stack. | |
array[] | $contextual | The contextual binding map. | |
protected array[] | $reboundCallbacks | All of the registered rebound callbacks. | |
protected Closure[] | $globalResolvingCallbacks | All of the global resolving callbacks. | |
protected Closure[] | $globalAfterResolvingCallbacks | All of the global after resolving callbacks. | |
protected array[] | $resolvingCallbacks | All of the resolving callbacks by class type. | |
protected array[] | $afterResolvingCallbacks | All of the after resolving callbacks by class type. |
Methods
ContextualBindingBuilder | when(string|array $concrete) Define a contextual binding. | |
bool | bound(string $abstract) Determine if the given abstract type has been bound. | |
has($id) {@inheritdoc} | ||
bool | resolved(string $abstract) Determine if the given abstract type has been resolved. | |
bool | isShared(string $abstract) Determine if a given type is shared. | |
bool | isAlias(string $name) Determine if a given string is an alias. | |
void | bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false) Register a binding with the container. | |
Closure | getClosure(string $abstract, string $concrete) Get the Closure to be used when building a type. | |
bool | hasMethodBinding(string $method) Determine if the container has a method binding. | |
void | bindMethod(array|string $method, Closure $callback) Bind a callback to resolve with Container::call. | |
string | parseBindMethod(array|string $method) Get the method to be bound in class@method format. | |
mixed | callMethodBinding(string $method, mixed $instance) Get the method binding for the given method. | |
void | addContextualBinding(string $concrete, string $abstract, Closure|string $implementation) Add a contextual binding to the container. | |
void | bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false) Register a binding if it hasn't already been registered. | |
void | singleton(string $abstract, Closure|string|null $concrete = null) Register a shared binding in the container. | |
void | singletonIf(string $abstract, Closure|string|null $concrete = null) Register a shared binding if it hasn't already been registered. | |
void | extend(string $abstract, Closure $closure) "Extend" an abstract type in the container. | |
mixed | instance(string $abstract, mixed $instance) Register an existing instance as shared in the container. | |
void | removeAbstractAlias(string $searched) Remove an alias from the contextual binding alias cache. | |
void | tag(array|string $abstracts, array|mixed $tags) Assign a set of tags to a given binding. | |
iterable | tagged(string $tag) Resolve all of the bindings for a given tag. | |
void | alias(string $abstract, string $alias) Alias a type to a different name. | |
mixed | rebinding(string $abstract, Closure $callback) Bind a new callback to an abstract's rebind event. | |
mixed | refresh(string $abstract, mixed $target, string $method) Refresh an instance on the given target and method. | |
void | rebound(string $abstract) Fire the "rebound" callbacks for the given abstract type. | |
array | getReboundCallbacks(string $abstract) Get the rebound callbacks for a given type. | |
Closure | wrap(Closure $callback, array $parameters = []) Wrap the given closure such that its dependencies will be injected when executed. | |
mixed | call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null) Call the given Closure / class@method and inject its dependencies. | |
Closure | factory(string $abstract) Get a closure to resolve the given type from the container. | |
mixed | makeWith(string $abstract, array $parameters = []) An alias function name for make(). | |
mixed | make(string $abstract, array $parameters = []) Resolve the given type from the container. | |
get($id) {@inheritdoc} | ||
mixed | resolve(string $abstract, array $parameters = [], bool $raiseEvents = true) Resolve the given type from the container. | |
mixed | getConcrete(string $abstract) Get the concrete type for a given abstract. | |
Closure|string|null | getContextualConcrete(string $abstract) Get the contextual concrete binding for the given abstract. | |
Closure|string|null | findInContextualBindings(string $abstract) Find the concrete binding for the given abstract in the contextual binding array. | |
bool | isBuildable(mixed $concrete, string $abstract) Determine if the given concrete is buildable. | |
mixed | build(string $concrete) Instantiate a concrete instance of the given type. | |
array | resolveDependencies(array $dependencies) Resolve all of the dependencies from the ReflectionParameters. | |
bool | hasParameterOverride(ReflectionParameter $dependency) Determine if the given dependency has a parameter override. | |
mixed | getParameterOverride(ReflectionParameter $dependency) Get a parameter override for a dependency. | |
array | getLastParameterOverride() Get the last parameter override. | |
mixed | resolvePrimitive(ReflectionParameter $parameter) Resolve a non-class hinted primitive dependency. | |
mixed | resolveClass(ReflectionParameter $parameter) Resolve a class based dependency from the container. | |
void | notInstantiable(string $concrete) Throw an exception that the concrete is not instantiable. | |
void | unresolvablePrimitive(ReflectionParameter $parameter) Throw an exception for an unresolvable primitive. | |
void | resolving(Closure|string $abstract, Closure $callback = null) Register a new resolving callback. | |
void | afterResolving(Closure|string $abstract, Closure $callback = null) Register a new after resolving callback for all types. | |
void | fireResolvingCallbacks(string $abstract, mixed $object) Fire all of the resolving callbacks. | |
void | fireAfterResolvingCallbacks(string $abstract, mixed $object) Fire all of the after resolving callbacks. | |
array | getCallbacksForType(string $abstract, object $object, array $callbacksPerType) Get all callbacks for a given type. | |
void | fireCallbackArray(mixed $object, array $callbacks) Fire an array of callbacks with an object. | |
array | getBindings() Get the container's bindings. | |
string | getAlias(string $abstract) Get the alias for an abstract if available. | |
array | getExtenders(string $abstract) Get the extender callbacks for a given type. | |
void | forgetExtenders(string $abstract) Remove all of the extender callbacks for a given type. | |
void | dropStaleInstances(string $abstract) Drop all of the stale instances and aliases. | |
void | forgetInstance(string $abstract) Remove a resolved instance from the instance cache. | |
void | forgetInstances() Clear all of the instances from the container. | |
void | flush() Flush the container of all bindings and resolved instances. | |
static Container | getInstance() Get the globally available instance of the container. | |
static Container|Container | setInstance(Container $container = null) Set the shared instance of the container. | |
bool | offsetExists(string $key) Determine if a given offset exists. | |
mixed | offsetGet(string $key) Get the value at a given offset. | |
void | offsetSet(string $key, mixed $value) Set the value at a given offset. | |
void | offsetUnset(string $key) Unset the value at a given offset. | |
mixed | __get(string $key) Dynamically access container services. | |
void | __set(string $key, mixed $value) Dynamically set container services. |
Details
ContextualBindingBuilder when(string|array $concrete)
Define a contextual binding.
bool bound(string $abstract)
Determine if the given abstract type has been bound.
has($id)
{@inheritdoc}
bool resolved(string $abstract)
Determine if the given abstract type has been resolved.
bool isShared(string $abstract)
Determine if a given type is shared.
bool isAlias(string $name)
Determine if a given string is an alias.
void bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding with the container.
protected Closure getClosure(string $abstract, string $concrete)
Get the Closure to be used when building a type.
bool hasMethodBinding(string $method)
Determine if the container has a method binding.
void bindMethod(array|string $method, Closure $callback)
Bind a callback to resolve with Container::call.
protected string parseBindMethod(array|string $method)
Get the method to be bound in class@method format.
mixed callMethodBinding(string $method, mixed $instance)
Get the method binding for the given method.
void addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)
Add a contextual binding to the container.
void bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding if it hasn't already been registered.
void singleton(string $abstract, Closure|string|null $concrete = null)
Register a shared binding in the container.
void singletonIf(string $abstract, Closure|string|null $concrete = null)
Register a shared binding if it hasn't already been registered.
void extend(string $abstract, Closure $closure)
"Extend" an abstract type in the container.
mixed instance(string $abstract, mixed $instance)
Register an existing instance as shared in the container.
protected void removeAbstractAlias(string $searched)
Remove an alias from the contextual binding alias cache.
void tag(array|string $abstracts, array|mixed $tags)
Assign a set of tags to a given binding.
iterable tagged(string $tag)
Resolve all of the bindings for a given tag.
void alias(string $abstract, string $alias)
Alias a type to a different name.
mixed rebinding(string $abstract, Closure $callback)
Bind a new callback to an abstract's rebind event.
mixed refresh(string $abstract, mixed $target, string $method)
Refresh an instance on the given target and method.
protected void rebound(string $abstract)
Fire the "rebound" callbacks for the given abstract type.
protected array getReboundCallbacks(string $abstract)
Get the rebound callbacks for a given type.
Closure wrap(Closure $callback, array $parameters = [])
Wrap the given closure such that its dependencies will be injected when executed.
mixed call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Call the given Closure / class@method and inject its dependencies.
Closure factory(string $abstract)
Get a closure to resolve the given type from the container.
mixed makeWith(string $abstract, array $parameters = [])
An alias function name for make().
mixed make(string $abstract, array $parameters = [])
Resolve the given type from the container.
get($id)
{@inheritdoc}
protected mixed resolve(string $abstract, array $parameters = [], bool $raiseEvents = true)
Resolve the given type from the container.
protected mixed getConcrete(string $abstract)
Get the concrete type for a given abstract.
protected Closure|string|null getContextualConcrete(string $abstract)
Get the contextual concrete binding for the given abstract.
protected Closure|string|null findInContextualBindings(string $abstract)
Find the concrete binding for the given abstract in the contextual binding array.
protected bool isBuildable(mixed $concrete, string $abstract)
Determine if the given concrete is buildable.
mixed build(string $concrete)
Instantiate a concrete instance of the given type.
protected array resolveDependencies(array $dependencies)
Resolve all of the dependencies from the ReflectionParameters.
protected bool hasParameterOverride(ReflectionParameter $dependency)
Determine if the given dependency has a parameter override.
protected mixed getParameterOverride(ReflectionParameter $dependency)
Get a parameter override for a dependency.
protected array getLastParameterOverride()
Get the last parameter override.
protected mixed resolvePrimitive(ReflectionParameter $parameter)
Resolve a non-class hinted primitive dependency.
protected mixed resolveClass(ReflectionParameter $parameter)
Resolve a class based dependency from the container.
protected void notInstantiable(string $concrete)
Throw an exception that the concrete is not instantiable.
protected void unresolvablePrimitive(ReflectionParameter $parameter)
Throw an exception for an unresolvable primitive.
void resolving(Closure|string $abstract, Closure $callback = null)
Register a new resolving callback.
void afterResolving(Closure|string $abstract, Closure $callback = null)
Register a new after resolving callback for all types.
protected void fireResolvingCallbacks(string $abstract, mixed $object)
Fire all of the resolving callbacks.
protected void fireAfterResolvingCallbacks(string $abstract, mixed $object)
Fire all of the after resolving callbacks.
protected array getCallbacksForType(string $abstract, object $object, array $callbacksPerType)
Get all callbacks for a given type.
protected void fireCallbackArray(mixed $object, array $callbacks)
Fire an array of callbacks with an object.
array getBindings()
Get the container's bindings.
string getAlias(string $abstract)
Get the alias for an abstract if available.
protected array getExtenders(string $abstract)
Get the extender callbacks for a given type.
void forgetExtenders(string $abstract)
Remove all of the extender callbacks for a given type.
protected void dropStaleInstances(string $abstract)
Drop all of the stale instances and aliases.
void forgetInstance(string $abstract)
Remove a resolved instance from the instance cache.
void forgetInstances()
Clear all of the instances from the container.
void flush()
Flush the container of all bindings and resolved instances.
static Container getInstance()
Get the globally available instance of the container.
static Container|Container setInstance(Container $container = null)
Set the shared instance of the container.
bool offsetExists(string $key)
Determine if a given offset exists.
mixed offsetGet(string $key)
Get the value at a given offset.
void offsetSet(string $key, mixed $value)
Set the value at a given offset.
void offsetUnset(string $key)
Unset the value at a given offset.
mixed __get(string $key)
Dynamically access container services.
void __set(string $key, mixed $value)
Dynamically set container services.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/6.x/Illuminate/Container/Container.html