drhino / container
Lightweight PSR-11 Container
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/drhino/container
Requires
- php: >=7.4
- psr/container: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.6
- vimeo/psalm: ^5.9
README
Install with Composer:
composer require drhino/container:^3.0.0
Example use:
class Dependency { public string $var = ''; } class Init { public function __construct(Dependency $dependency, String $value) { $dependency->var = $value; } }
$container = new drhino\Container\Container; $container ->add(Init::class, [ // The arguments of the constructor 'dependency' => $container->ref(Dependency::class), 'value' => 'Hello world', ]) ->add(Dependency::class) ;
Use $container->ref() to reference an identifier before it has been added into the container.
// Executes __construct() $init = $container->get(Init::class); // Prints 'Hello world' echo $container->get(Dependency::class)->var;
Signature:
The following are exactly the same:
$container->add(Dependency::class);
$container->add($id = Dependency::class, $resource = Dependency::class, $arguments = []);
$container->add($id = Dependency::class, $arguments = []);