mulertech / container
The MulerTech dependency injection container
1.1.1
2024-03-25 18:54 UTC
Requires
- php: >=8.2
- psr/container: ^2
- symfony/yaml: ^6
Requires (Dev)
- phpunit/phpunit: ^9
README
The MulerTech dependency injection container
Installation
Two methods to install Application package with composer :
Add to your "composer.json" file into require section :
"mulertech/container": "^1.0"
and run the command :
php composer.phar update
Run the command :
php composer.phar require mulertech/container "^1.0"
Usage
Initialize the container (you can give the definitions into this construct) :
$container = new Container();
or
$container = new Container($definitions);
//definitions file :
return [
new \MulerTech\Container\Definition(\Psr\Http\Server\RequestHandlerInterface::class, \MulerTech\Application\RequestHandler::class),
new \MulerTech\Container\Definition(\MulerTech\Form\Validators\MaxLengthValidator::class, null, [], true)
];
Get simple class :
$container->get(Foo::class);
Add a class with its interface (you can get this class with the interface class name) :
$container->add(FooInterface::class, Foo::class);
$fooClass = $container->get(FooInterface::class);
Add a class with arguments :
$container->add(FooInterface::class, Foo::class, ['argumentName' => 'argument value']);
Set parameters and get it :
$container->setParameter('parameter', 'a value');
echo $container->getParameter('parameter'); // a value
Use parameters into class construct arguments :
$container->setParameter('parameter', 'a value');
$container->add(FooInterface::class, Foo::class, ['argumentName' => '%parameter%']);
Load yaml files parameters into container :
$container = new Container();
$loader = new Loader();
$loader
->setFileList(['./path_to_files/file1.yaml', './path_to_files/file2.yaml'])
->setLoader(YamlLoader::class)
->loadParameters($container);
Set parameters with env value :
#env file :
key=value
$container = new Container();
$container->setParameter('parameter', 'env(key)');
echo $container->getParameter('parameter'); // value