This tiny library aims to provide a dead-simple PSR-11 implementation with flexible service registration.
- PSR-11 Compliant: Fully implements the PSR-11
ContainerInterface. - Autowiring: Automatically resolves dependencies for constructors and callables using type-hints or parameter names.
- Flexible Registration: Register services using closures, class names, instances, or even class-method pairs.
- Service Extension: Easily modify or wrap existing services using the
extend()method. - On-the-fly Resolution: Create instances without adding them to the container stack using
make(). - PSR-14 Event Lifecycle: Fully supports PSR-14 event dispatching for intercepting and filtering container operations.
- Container Awareness: Automatically inject the container into services that implement
ContainerAware. - Lightweight: Minimal dependencies (only PSR-11 and PSR-14 interfaces) and a small footprint.
Use Composer
$ composer require projek-xyz/container --prefer-distDocumentations and usages available on wiki
This library is open-sourced software licensed under MIT license.