PHP code example of mdarc / di
1. Go to this page and download the library: Download mdarc/di library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mdarc / di example snippets
use Mdarc\DI\Container;
$container = new Container();
$myClass = $container->get(\Path\To\MyClass::class);
use Mdarc\DI\Container;
use Mdarc\DI\DI;
$container = new Container([
\Path\To\MyClass::class => DI::factory(function () {
return new \Path\To\MyClass();
}),
]);
$myClass = $container->get(\Path\To\MyClass::class);
use Mdarc\DI\Container;
$container = new Container([
\Monolog\Logger::class => function (Container $c) {
$config = $c->get(\Path\To\Config::class);
$logger = new \Monolog\Logger($config->get('name'));
$logger->pushHandler(new \Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG));
return $logger;
}),
]);
$logger = $container->get(\Monolog\Logger::class);
use Mdarc\DI\Container;
$container = new Container([
// Binding Interface to implementation
\Psr\Log\LoggerInterface::class => \Monolog\Logger::class,
// Concrete implementation
\Monolog\Logger::class => function (Container $c) {
// build Monolog here
}),
]);
$logger = $container->get(\Psr\Log\LoggerInterface::class);
use Mdarc\DI\Container;
class MyClass {
public function __construct(array $config, \Psr\LoggerInterface $logger) { /*...*/ }
}
$definitions = [
// Binding Interface to implementation
\Psr\Log\LoggerInterface::class => \Monolog\Logger::class,
// Concrete implementation
\Monolog\Logger::class => function (Container $c) {
// build Monolog here
},
];
$constructorParameters = [
MyClass::class => [
'config' => ['an array', 'of relevant', 'things']
],
];
$container = new Container($definitions, $constructorParameters);
$myClass = $container->get(MyClass::class);