league/container
PSR-11–compliant dependency injection container from The PHP League. Register services, factories and shared instances, then resolve dependencies with autowiring support. Modern PHP (8.3+) with full docs, tests, and MIT license.
Delegate containers are a way to allow you to register one or multiple backup containers that will be used to attempt the resolution of services when they cannot be resolved via this container.
A delegate must be a PSR-11 implementation and can be registered using the delegate method.
<?php
declare(strict_types=1);
namespace Acme\Container;
use Psr\Container\ContainerInterface;
class DelegateContainer implements ContainerInterface
{
// ..
}
<?php
declare(strict_types=1);
$container = new League\Container\Container();
$delegate = new Acme\Container\DelegateContainer();
// this method can be invoked multiple times, each delegate
// is checked in the order that it was registered
$container->delegate($delegate);
Now that the delegate has been registered, if a service cannot be resolved via the primary container, it will resort to the has and get methods of the delegates to resolve the requested service.
How can I help you explore Laravel packages today?