A PSR-11 compliant aggregate container for PHP, designed to unify and resolve services across multiple container implementations. Built to work seamlessly with php-di
, configuration objects, and custom container stacks.
- Aggregates multiple containers
- Caches resolved entries
- Integrates with
php-di
- First-class support for configuration containers
- PSR-11 compliant
composer require fast-forward/container
use FastForward\Container\ContainerInterface;
use FastForward\Container\container;
use FastForward\Config\ArrayConfig;
$config = new ArrayConfig([
ContainerInterface::class => [
SomeServiceProvider::class, // strings will be initialized with a new call
SomePsr11Container::class, // strings should be initializable with a simple new call
new OtherServiceProvider('withArgument'), // objects that implement Interop\Container\ServiceProviderInterface
new ServiceManager($dependencies), // objects that implement Psr\Container\ContainerInterface
],
]);
$container = container($config);
// or using the container function directly with a configuration variadic
// $container = container(
// SomeServiceProvider::class,
// SomePsr11Container::class,
// new ApplicationConfig(), // that implements ConfigInterface with the ContainerInterface key
// new OtherServiceProvider('withArgument'),
// new ServiceManager($dependencies),
// );
// Retrieve service
$service = $container->get(SomeService::class);
This package is licensed under the MIT License. See the LICENSE file for more details.