elverion/dependency-injection

此包的最新版本(1.02)没有可用的许可证信息。

PHP 的极简依赖注入库

1.02 2022-01-29 16:55 UTC

This package is auto-updated.

Last update: 2024-09-19 00:09:24 UTC


README

关于

本项目可用于帮助您在自己的项目中实现依赖注入。该实现符合 PSR-11 容器规范,尽可能地简洁,而不牺牲功能。它能够解析类、接口和绑定以及原始类型的具体实现,并调用闭包、函数和绑定的方法。

需求

安装

Composer
composer require elverion/dependency-injection

使用

这就像获取容器对象的实例并使用 ->make()->resolve() 方法(以获取某些抽象的具体实现)一样简单,或者使用 ->call() 调用一个方法并将依赖注入其中。例如

<?php

use Elverion\DependencyInjection\Container\Container;

class MyApp {
    private $client;

    public function __construct(Client $client) {
        $this->client = $client;
    }

    // ...
}

class Task {
    public function handle(MyApp $app) {
        // ...
    }
}



$container = Container::getInstance();

$task = new Task();
$container->call([$task, 'handle']); // Injects a Client into MyApp, then calls Task::handle() with the MyApp instance

有关更深入的示例,请参阅 examples/example.php。