slightly-interactive/di-container
Composer 安装命令:
composer require slightly-interactive/di-container
包简介
A dependency injection container.
README 文档
README
Overview
DI Container is a PSR-11 compliant auto-wiring Dependency Injection container.
Usage
Instantiate the container:
use SlightlyInteractive\DI;
$container = new Container();
Resolve classes:
$myClass = $container->get(MyClass::class);
By default, the container will pass the exact same instance every time the same class is requested.
You can tell the container to create a new instance every time a given class is requested:
$container->set(MyClass::class)->factory();
Or when you instantiate the container you can tell it to create a new instance every time, for every class:
$container = new Container(Container::INSTANTIATE_FACTORY);
And then you can tell it to make specific classes use a single instance:
$container->set(MySingleton::class)->singleton();
You can map interfaces to a particular concrete instance:
$container->set(MyInterface::class)->map(MyClass::class);
You can do this for a particular class:
class MyDependent
{
public function __construct(
RealClass $realClass,
MyInterface $myInterface
) {
...
}
...
}
$container->set(MyDependent::class)
->argument('myInterface', MyClass::class);
You can use the argument parameter to pass non-object values to arguments, too:
class MyDependent
{
public function __construct(
RealClass $realClass,
string $apiKey
) {
...
}
...
}
$container->set(MyDependent::class)
->argument('apiKey', $_ENV['API_KEY']);
统计信息
- 总下载量: 615
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-07-18