bizley / deep-instantiate
此包已被废弃,不再维护。未建议替代包。
Yii 2 的深度实例化器。
1.0.0
2021-03-10 18:47 UTC
Requires
- php: >=7.0
- yiisoft/yii2: ^2.0.39.3
Requires (Dev)
README
此包提供具有自动解决嵌套构造函数接口类型依赖的 Yii 2 依赖注入容器。
需求
- Yii 2.0.39.3+
- PHP 7.0+
安装
composer require bizley/deep-instantiate:^1.0
用法
直接调用 new \Bizley\DeepInstantiate\Container()
。
全局设置 \Yii::$container = new \Bizley\DeepInstantiate\Container();
在您的入口脚本中。
增强实例化
class Alpha implements AlphaInterface { private $beta; public function __construct(BetaInterface $beta) { $this->beta = $beta; } } class Beta implements BetaInterface { } class Gamma { private $alpha; public function __construct(AlphaInterface $alpha) { $this->alpha = $alpha; } }
与原始容器一起
$container->set(BetaInterface::class, Beta::class); $alpha = $container->get(Alpha::class);
使用 Deep Instantiate Container,您只需要
$alpha = $container->get(Alpha::class, [Beta::class]);
对于原始容器中的嵌套依赖项
$container->set(AlphaInterface::class, Alpha::class); $container->set(BetaInterface::class, Beta::class); $gamma = $container->get(Gamma::class);
对于 Deep Instantiate Container 中的嵌套依赖项
$gamma = $container->get(Gamma::class, [ [ 'class' => Alpha::class, '__construct()' => Beta::class ] ]);