duyler/dependency-injection

依赖注入容器

dev-main 2024-09-24 23:34 UTC

This package is auto-updated.

Last update: 2024-09-24 23:41:53 UTC


README

build

依赖注入容器

此包使得将DI容器快速连接到您的项目成为可能。

容器既可以自动模式使用,在类构造函数中使用类型提示,也可以通过提供者进行细致调整。

示例:自动创建实例

use Duyler\DI\Container;
use YourClass;

$container = new Container;

$yourClassObject = $container->get(YouClass::class);

使用提供者创建实例

class YourClass
{
    private MyClassInterface $myImplements;
    
    public function __construct(MyClassInterface $myImplements)
    {
        $this->myImplements = $myImplements;
    }
}
use Duyler\DI\Provider\AbstractProvider

class ClassProvider extends AbstractProvider
{
    public function bind(): array
    {
        return [
            MyClassInterface::class => MyImplemensClass::class,
        ];
    }
}
$container->addProviders([
    MyClassInterface::class => ClassProvider::class,
]);

$yourClassObject = $container->get(YourClass::class);

使用绑定创建实例

$container->bind([
    MyClassInterface::class => MyImplemensClass::class,
]);

$yourClassObject = $container->get(YouClass::class);