Container
interface Container implements ContainerInterface
Methods
No description
Determine if the given abstract type has been bound.
Alias a type to a different name.
Assign a set of tags to a given binding.
Resolve all of the bindings for a given tag.
Bind a callback to resolve with Container::call.
Register a shared binding if it hasn't already been registered.
Determine if a given abstract is a scoped binding.
Determine if the object is a resolved scoped instance in this coroutine.
Determine if the container holds a worker-shared instance for the given type.
Register an existing instance as shared in the container.
Remove a resolved instance from the instance cache.
Add a contextual binding to the container.
Define a contextual binding.
Flush the container of all bindings and resolved instances.
Resolve the given type from the container.
Resolve the given type with a transient implicit lifetime.
Resolve the contextual constructor parameters of a class within its build context.
Call the given Closure / class@method and inject its dependencies.
Determine if the given abstract type has been resolved.
Register a new before resolving callback.
Register a new after resolving callback.
Details
at line 23
mixed
get(string $id)
No description
at line 28
bool
bound(string $abstract)
Determine if the given abstract type has been bound.
at line 35
void
alias(string $abstract, string $alias)
Alias a type to a different name.
at line 41
void
tag(array|string $abstracts, array|string $tags)
Assign a set of tags to a given binding.
at line 47
iterable
tagged(string $tag)
Resolve all of the bindings for a given tag.
at line 52
void
bind(Closure|string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding with the container.
at line 58
void
bindMethod(array|string $method, Closure $callback)
Bind a callback to resolve with Container::call.
at line 64
void
bindIf(Closure|string $abstract, Closure|string|null $concrete = null, bool $shared = false)
Register a binding if it hasn't already been registered.
at line 70
void
singleton(Closure|string $abstract, Closure|string|null $concrete = null)
Register a shared binding in the container.
at line 76
void
singletonIf(Closure|string $abstract, Closure|string|null $concrete = null)
Register a shared binding if it hasn't already been registered.
at line 82
void
scoped(Closure|string $abstract, Closure|string|null $concrete = null)
Register a scoped binding in the container.
at line 88
void
scopedIf(Closure|string $abstract, Closure|string|null $concrete = null)
Register a scoped binding if it hasn't already been registered.
at line 94
bool
isScoped(string $abstract)
Determine if a given abstract is a scoped binding.
at line 99
bool
isScopedInstance(mixed $instance)
Determine if the object is a resolved scoped instance in this coroutine.
at line 104
bool
resolvedShared(string $abstract)
Determine if the container holds a worker-shared instance for the given type.
at line 111
void
extend(string $abstract, Closure $closure)
"Extend" an abstract type in the container.
at line 122
mixed
instance(string $abstract, mixed $instance)
Register an existing instance as shared in the container.
at line 128
void
forgetInstance(string $abstract)
Remove a resolved instance from the instance cache.
at line 134
void
addContextualBinding(string $concrete, string $abstract, mixed $implementation)
Add a contextual binding to the container.
at line 140
ContextualBindingBuilder
when(string|array $concrete)
Define a contextual binding.
at line 150
Closure
factory(string $abstract)
Get a closure to resolve the given type from the container.
at line 155
void
flush()
Flush the container of all bindings and resolved instances.
at line 168
mixed
make(string $abstract, array $parameters = [])
Resolve the given type from the container.
at line 182
mixed
makeTransient(string $abstract)
Resolve the given type with a transient implicit lifetime.
Explicit lifetimes remain authoritative.
at line 192
mixed
build(Closure|string $concrete)
Instantiate a concrete instance of the given type.
Unlike make(), this always creates a fresh instance — it bypasses bindings, aliases, and singleton/auto-singleton caching.
at line 202
mixed
buildWith(Closure|string $concrete, array $parameters = [])
Instantiate a concrete instance with the given parameter overrides.
Unlike make(), this always creates a fresh instance — it bypasses bindings, aliases, and singleton/auto-singleton caching.
at line 217
array
resolveContextualParameters(string $concrete, array|null $names = null)
Resolve the contextual constructor parameters of a class within its build context.
Pass the values to buildWith() as overrides so they are not resolved again. Variadic parameters are skipped, because an override is passed as one argument; the container resolves them when the class is built.
at line 222
mixed
call(callable|string $callback, array $parameters = [], string|null $defaultMethod = null)
Call the given Closure / class@method and inject its dependencies.
at line 227
bool
resolved(string $abstract)
Determine if the given abstract type has been resolved.
at line 232
mixed
rebinding(string $abstract, Closure $callback)
Register a new rebinding callback for an abstract type.
at line 238
void
beforeResolving(Closure|string $abstract, Closure|null $callback = null)
Register a new before resolving callback.