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 array | $scopedInstances | The container's scoped 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[] | $globalBeforeResolvingCallbacks | All of the global before resolving callbacks.  | 
                |
| protected Closure[] | $globalResolvingCallbacks | All of the global resolving callbacks.  | 
                |
| protected Closure[] | $globalAfterResolvingCallbacks | All of the global after resolving callbacks.  | 
                |
| protected array[] | $beforeResolvingCallbacks | All of the before resolving callbacks by class type.  | 
                |
| protected array[] | $resolvingCallbacks | All of the resolving callbacks by class type.  | 
                |
| protected array[] | $afterResolvingCallbacks | All of the after resolving callbacks by class type.  | 
                
Methods
Define a contextual binding.
Determine if the given abstract type has been bound.
{@inheritdoc}
Determine if the given abstract type has been resolved.
Determine if a given type is shared.
Determine if a given string is an alias.
Get the Closure to be used when building a type.
Determine if the container has a method binding.
Bind a callback to resolve with Container::call.
Get the method to be bound in class@method format.
Get the method binding for the given method.
Add a contextual binding to the container.
Register a shared binding if it hasn't already been registered.
Register an existing instance as shared in the container.
Remove an alias from the contextual binding alias cache.
Assign a set of tags to a given binding.
Resolve all of the bindings for a given tag.
Alias a type to a different name.
Refresh an instance on the given target and method.
Fire the "rebound" callbacks for the given abstract type.
Get the rebound callbacks for a given type.
Call the given Closure / class@method and inject its dependencies.
An alias function name for make().
Resolve the given type from the container.
{@inheritdoc}
Resolve the given type from the container.
Get the concrete type for a given abstract.
Get the contextual concrete binding for the given abstract.
Find the concrete binding for the given abstract in the contextual binding array.
Determine if the given concrete is buildable.
Resolve all of the dependencies from the ReflectionParameters.
Determine if the given dependency has a parameter override.
Get the last parameter override.
Resolve a class based variadic dependency from the container.
Throw an exception that the concrete is not instantiable.
Throw an exception for an unresolvable primitive.
Register a new before resolving callback.
Register a new after resolving callback.
Fire all of the before resolving callbacks.
Fire an array of callbacks with an object.
Fire all of the resolving callbacks.
Fire all of the after resolving callbacks.
Get all callbacks for a given type.
Fire an array of callbacks with an object.
Get the container's bindings.
Get the alias for an abstract if available.
Get the extender callbacks for a given type.
Remove all of the extender callbacks for a given type.
Drop all of the stale instances and aliases.
Remove a resolved instance from the instance cache.
Clear all of the instances from the container.
Clear all of the scoped instances from the container.
Flush the container of all bindings and resolved instances.
Get the globally available instance of the container.
Set the shared instance of the container.
Determine if a given offset exists.
Get the value at a given offset.
Set the value at a given offset.
Unset the value at a given offset.
Dynamically access container services.
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.
        
                            bool
    has(string $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
    scoped(string $abstract, Closure|string|null $concrete = null)
        
    
    Register a scoped binding in the container.
        
                            void
    scopedIf(string $abstract, Closure|string|null $concrete = null)
        
    
    Register a scoped 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|callable $abstract, array $parameters = [])
        
    
    An alias function name for make().
        
                            mixed
    make(string $abstract, array $parameters = [])
        
    
    Resolve the given type from the container.
        
                            mixed
    get(string $id)
        
    
    {@inheritdoc}
        
                    protected        mixed
    resolve(string|callable $abstract, array $parameters = [], bool $raiseEvents = true)
        
    
    Resolve the given type from the container.
        
                    protected        mixed
    getConcrete(string|callable $abstract)
        
    
    Get the concrete type for a given abstract.
        
                    protected        Closure|string|array|null
    getContextualConcrete(string|callable $abstract)
        
    
    Get the contextual concrete binding for the given abstract.
        
                    protected        Closure|string|null
    findInContextualBindings(string|callable $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(Closure|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        mixed
    resolveVariadicClass(ReflectionParameter $parameter)
        
    
    Resolve a class based variadic 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
    beforeResolving(Closure|string $abstract, Closure|null $callback = null)
        
    
    Register a new before resolving callback.
        
                            void
    resolving(Closure|string $abstract, Closure|null $callback = null)
        
    
    Register a new resolving callback.
        
                            void
    afterResolving(Closure|string $abstract, Closure|null $callback = null)
        
    
    Register a new after resolving callback.
        
                    protected        void
    fireBeforeResolvingCallbacks(string $abstract, array $parameters = [])
        
    
    Fire all of the before resolving callbacks.
        
                    protected        void
    fireBeforeCallbackArray(string $abstract, array $parameters, array $callbacks)
        
    
    Fire an array of callbacks with an object.
        
                    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
    forgetScopedInstances()
        
    
    Clear all of the scoped 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|null $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.