The MulerTech dependency injection container
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"
$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)
];
$container->get(Foo::class);
$container->add(FooInterface::class, Foo::class);
$fooClass = $container->get(FooInterface::class);
$container->add(FooInterface::class, Foo::class, ['argumentName' => 'argument value']);
$container->setParameter('parameter', 'a value');
echo $container->getParameter('parameter'); // a value
$container->setParameter('parameter', 'a value');
$container->add(FooInterface::class, Foo::class, ['argumentName' => '%parameter%']);
$container = new Container();
$loader = new Loader();
$loader
->setFileList(['./path_to_files/file1.yaml', './path_to_files/file2.yaml'])
->setLoader(YamlLoader::class)
->loadParameters($container);
#env file :
key=value
$container = new Container();
$container->setParameter('parameter', 'env(key)');
echo $container->getParameter('parameter'); // value