Class Container
Property Summary
-
$defaultToShared protected
bool -
$delegates protected
array<Psr\Container\ContainerInterface>
Method Summary
-
__construct() public
-
add() public
-
addDefinitions() public
Add multiple definitions at once.
-
addServiceProvider() public
-
addShared() public
-
defaultToShared() public
-
delegate() public
-
disableAutoWiring() public
-
enableAutoWiring() public
-
extend() public
-
get() public
Finds an entry of the container by its identifier and returns it.
-
getNew() public
-
has() public
Returns true if the container can return an entry for the given identifier. Returns false otherwise.
-
hasDefinition() public
Check if the container has a registered definition for the given id.
-
inflector() public
-
make() public
Resolve an entry with specific constructor arguments.
-
resolve() protected
Method Detail
__construct() ¶ public
__construct(Cake\Container\Definition\DefinitionAggregateInterface $definitions = new DefinitionAggregate(), Cake\Container\ServiceProvider\ServiceProviderAggregateInterface $providers = new ServiceProviderAggregate(), Cake\Container\Inflector\InflectorAggregateInterface $inflectors = new InflectorAggregate())
Parameters
-
Cake\Container\Definition\DefinitionAggregateInterface$definitions optional -
Cake\Container\ServiceProvider\ServiceProviderAggregateInterface$providers optional -
Cake\Container\Inflector\InflectorAggregateInterface$inflectors optional
add() ¶ public
add(string $id, mixed $concrete = null): Cake\Container\Definition\DefinitionInterface
Parameters
-
string$id -
mixed$concrete optional
Returns
Cake\Container\Definition\DefinitionInterfaceaddDefinitions() ¶ public
addDefinitions(array<int|string, array<class-string>|class-string> $definitions): Cake\Container\DefinitionContainerInterface
Add multiple definitions at once.
Examples:
$container->addDefinitions([
Foo::class,
Bar::class
]);
$container->addDefinitions([
Foo::class => [Bar::class],
Bar::class
]);
$container->addDefinitions([
'foo' => Foo::class,
'bar' => Bar::class
]);
Parameters
-
array<int|string, array<class-string>|class-string>$definitions
Returns
Cake\Container\DefinitionContainerInterfaceaddServiceProvider() ¶ public
addServiceProvider(Cake\Container\ServiceProvider\ServiceProviderInterface $provider): DefinitionContainerInterface
Parameters
-
Cake\Container\ServiceProvider\ServiceProviderInterface$provider
Returns
DefinitionContainerInterfaceaddShared() ¶ public
addShared(string $id, mixed $concrete = null): Cake\Container\Definition\DefinitionInterface
Parameters
-
string$id -
mixed$concrete optional
Returns
Cake\Container\Definition\DefinitionInterfacedefaultToShared() ¶ public
defaultToShared(bool $shared = true): Psr\Container\ContainerInterface
Parameters
-
bool$shared optional
Returns
Psr\Container\ContainerInterfacedelegate() ¶ public
delegate(Psr\Container\ContainerInterface $container): $this
Parameters
-
Psr\Container\ContainerInterface$container
Returns
$thisenableAutoWiring() ¶ public
enableAutoWiring(bool $cache = true): void
Parameters
-
bool$cache optional
Returns
voidextend() ¶ public
extend(string $id): Cake\Container\Definition\DefinitionInterface
Parameters
-
string$id
Returns
Cake\Container\Definition\DefinitionInterfaceget() ¶ public
get(string $id): RequestedType|mixed
Finds an entry of the container by its identifier and returns it.
Templates
RequestedType
Parameters
-
string$id
Returns
RequestedType|mixedThrows
Psr\Container\ContainerExceptionInterfacePsr\Container\NotFoundExceptionInterfacegetNew() ¶ public
getNew(mixed $id): RequestedType|mixed
Templates
RequestedType
Parameters
-
mixed$id
Returns
RequestedType|mixedThrows
Psr\Container\ContainerExceptionInterfacePsr\Container\NotFoundExceptionInterfacehas() ¶ public
has(string $id): bool
Returns true if the container can return an entry for the given identifier. Returns false otherwise.
has($id) returning true does not mean that get($id) will not throw an exception.
It does however mean that get($id) will not throw a NotFoundExceptionInterface.
Parameters
-
string$id
Returns
boolhasDefinition() ¶ public
hasDefinition(string $id): bool
Check if the container has a registered definition for the given id.
Unlike has(), this only checks explicit definitions, not service providers
or delegate containers.
Parameters
-
string$id
Returns
boolinflector() ¶ public
inflector(string $type, callable|null $callback = null): Cake\Container\Inflector\InflectorInterface
Parameters
-
string$type -
callable|null$callback optional
Returns
Cake\Container\Inflector\InflectorInterfacemake() ¶ public
make(class-string<RequestedType>|string $id, array<string, mixed> $args = []): RequestedType|mixed
Resolve an entry with specific constructor arguments.
Unlike get(), this method allows passing specific constructor arguments
that will be used during autowiring. Arguments can be passed by name.
Example:
$container->make(MyService::class, ['configValue' => 'foo']);
Templates
RequestedType
Parameters
-
class-string<RequestedType>|string$id -
array<string, mixed>$args optional Named arguments to pass to the constructor
Returns
RequestedType|mixedThrows
Psr\Container\ContainerExceptionInterfacePsr\Container\NotFoundExceptionInterfaceresolve() ¶ protected
resolve(mixed $id, bool $new = false, array<string, mixed> $args = []): mixed|object|array|null|void
Parameters
-
mixed$id -
bool$new optional -
array<string, mixed>$args optional
Returns
mixed|object|array|null|voidThrows
Psr\Container\ContainerExceptionInterfacePsr\Container\NotFoundExceptionInterface