-
Notifications
You must be signed in to change notification settings - Fork 0
AggregateContainer
Aggregates multiple PSR-11 containers and delegates resolution requests among them.
This container implementation respects PSR-11 expectations and throws a NotFoundException when a requested service cannot be found in any delegated container.
It caches resolved entries to prevent redundant calls to delegated containers.
- Full name:
\FastForward\Container\AggregateContainer
- This class implements:
\FastForward\Container\ContainerInterface
Constant | Visibility | Type | Value |
---|---|---|---|
ALIAS |
public | string | 'container' |
Constructs the AggregateContainer with one or more delegated containers.
public __construct(\Psr\Container\ContainerInterface $containers): mixed
The constructor SHALL bind itself to common aliases, including the class name and the PSR-11 interface, to simplify resolution of the container itself.
Parameters:
Parameter | Type | Description |
---|---|---|
$containers |
\Psr\Container\ContainerInterface | One or more container implementations to aggregate. |
Appends a container to the end of the aggregated list.
public append(\Psr\Container\ContainerInterface $container): void
This method MAY be used to dynamically expand the resolution pool.
Parameters:
Parameter | Type | Description |
---|---|---|
$container |
\Psr\Container\ContainerInterface | the container to append |
Prepends a container to the beginning of the aggregated list.
public prepend(\Psr\Container\ContainerInterface $container): void
This method MAY be used to prioritize a container during resolution.
Parameters:
Parameter | Type | Description |
---|---|---|
$container |
\Psr\Container\ContainerInterface | the container to prepend |
Determines whether a service identifier can be resolved.
public has(string $id): bool
This method SHALL return true if the identifier is pre-resolved or can be located in any of the aggregated containers.
Parameters:
Parameter | Type | Description |
---|---|---|
$id |
string | the identifier of the entry to look for |
Return Value:
true if the entry exists, false otherwise
Retrieves the entry associated with the given identifier.
public get(string $id): mixed
This method SHALL resolve from its internal cache first, and otherwise iterate through the aggregated containers to resolve the entry. It MUST throw a NotFoundException if the identifier cannot be resolved.
Parameters:
Parameter | Type | Description |
---|---|---|
$id |
string | the identifier of the entry to retrieve |
Return Value:
the resolved entry
Throws:
if the identifier cannot be found in any aggregated container
if the container cannot resolve the entry
Automatically generated on 2025-07-03