bizley/deep-instantiate

此包已被废弃,不再维护。未建议替代包。

Yii 2 的深度实例化器。

资助包维护!
bizley

安装: 0

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2021-03-10 18:47 UTC

This package is auto-updated.

Last update: 2022-03-09 08:51:58 UTC


README

Latest Stable Version Total Downloads License Mutation testing badge

此包提供具有自动解决嵌套构造函数接口类型依赖的 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
    ]
]);