interface Container implements ContainerInterface (View source)

Methods

bool
bound(string $abstract)

Determine if the given abstract type has been bound.

void
alias(string $abstract, string $alias)

Alias a type to a different name.

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
bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)

Register a binding with 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
addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)

Add a contextual binding to the container.

when(string|array $concrete)

Define a contextual binding.

factory(string $abstract)

Get a closure to resolve the given type from the container.

void
flush()

Flush the container of all bindings and resolved instances.

mixed
make(string $abstract, array $parameters = [])

Resolve the given type from the container.

mixed
call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)

Call the given Closure / class@method and inject its dependencies.

bool
resolved(string $abstract)

Determine if the given abstract type has been resolved.

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.

Details

bool bound(string $abstract)

Determine if the given abstract type has been bound.

Parameters

string $abstract

Return Value

bool

void alias(string $abstract, string $alias)

Alias a type to a different name.

Parameters

string $abstract
string $alias

Return Value

void

Exceptions

LogicException

void tag(array|string $abstracts, array|mixed $tags)

Assign a set of tags to a given binding.

Parameters

array|string $abstracts
array|mixed $tags

Return Value

void

iterable tagged(string $tag)

Resolve all of the bindings for a given tag.

Parameters

string $tag

Return Value

iterable

void bind(string $abstract, Closure|string|null $concrete = null, bool $shared = false)

Register a binding with the container.

Parameters

string $abstract
Closure|string|null $concrete
bool $shared

Return Value

void

void bindIf(string $abstract, Closure|string|null $concrete = null, bool $shared = false)

Register a binding if it hasn't already been registered.

Parameters

string $abstract
Closure|string|null $concrete
bool $shared

Return Value

void

void singleton(string $abstract, Closure|string|null $concrete = null)

Register a shared binding in the container.

Parameters

string $abstract
Closure|string|null $concrete

Return Value

void

void singletonIf(string $abstract, Closure|string|null $concrete = null)

Register a shared binding if it hasn't already been registered.

Parameters

string $abstract
Closure|string|null $concrete

Return Value

void

void extend(string $abstract, Closure $closure)

"Extend" an abstract type in the container.

Parameters

string $abstract
Closure $closure

Return Value

void

Exceptions

InvalidArgumentException

mixed instance(string $abstract, mixed $instance)

Register an existing instance as shared in the container.

Parameters

string $abstract
mixed $instance

Return Value

mixed

void addContextualBinding(string $concrete, string $abstract, Closure|string $implementation)

Add a contextual binding to the container.

Parameters

string $concrete
string $abstract
Closure|string $implementation

Return Value

void

ContextualBindingBuilder when(string|array $concrete)

Define a contextual binding.

Parameters

string|array $concrete

Return Value

ContextualBindingBuilder

Closure factory(string $abstract)

Get a closure to resolve the given type from the container.

Parameters

string $abstract

Return Value

Closure

void flush()

Flush the container of all bindings and resolved instances.

Return Value

void

mixed make(string $abstract, array $parameters = [])

Resolve the given type from the container.

Parameters

string $abstract
array $parameters

Return Value

mixed

Exceptions

BindingResolutionException

mixed call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)

Call the given Closure / class@method and inject its dependencies.

Parameters

callable|string $callback
array $parameters
string|null $defaultMethod

Return Value

mixed

bool resolved(string $abstract)

Determine if the given abstract type has been resolved.

Parameters

string $abstract

Return Value

bool

void resolving(Closure|string $abstract, Closure|null $callback = null)

Register a new resolving callback.

Parameters

Closure|string $abstract
Closure|null $callback

Return Value

void

void afterResolving(Closure|string $abstract, Closure|null $callback = null)

Register a new after resolving callback.

Parameters

Closure|string $abstract
Closure|null $callback

Return Value

void

Laravel Cloud is the best place to deploy Laravel, Nuxt, Express, Hono, Node.js, Bun, Go, Flask, Python, and more, with dedicated infrastructure available on AWS through Laravel Private Cloud.