gorka/pimp

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

简单的依赖注入容器

v3.0.2 2015-10-06 06:22 UTC

README

⚠️ 该项目未维护,可能会最终被移除。请自行承担风险使用。

Pimp:简单的依赖注入容器

Pimp 是一个受 Pimple 启发的 PHP 依赖注入容器,并实现了对 Container Interop 的支持。

向后兼容性说明

版本 3.0.0 引入了一个重大向后兼容性中断,以符合容器互操作规范。在 Pimp 的先前版本中,可以在容器本身中引入配置值;现在不再可能,请改用 配置管理器

Build Status Code Coverage Scrutinizer Code Quality

安装

使用 composer,在项目根目录下运行

composer require gorka/pimp

容器

简单用例

use Gorka\Pimp\Container;
use Gorka\Pimp\ServiceFactory;

$container = new Container([
    'serviceOne' => function ($c) {
        return new MyService();
    },
    'serviceTwo' => function ($c) {
        return new MyOtherService($c->get('serviceOne'));
    }
]);

$service = $container->get('serviceOne');

初始化后,您还可以添加新的服务或服务工厂

$container->add('ServiceThree', function() { return new MyAwesomeService(); });

默认情况下,Pimp 每次调用 get() 时都会返回相同的实例。如果您希望每次都获取一个新的实例,则可以使用 ServiceFactory

$service1 = $container->get('ServiceOne');
$service2 = $container->get('ServiceOne');
var_dump($service1 === $service2); // true

$container->add(
    'ServiceFour', 
    ServiceFactory::create(
        function($c) { 
            return new MyAwesomeService(); 
        }
    )
);

$service1 = $container->get('ServiceFour');
$service2 = $container->get('ServiceFour');
var_dump($service1 === $service2); // false