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

依赖注入容器。

0.1.1 2016-07-05 02:26 UTC

This package is auto-updated.

Last update: 2023-11-18 01:51:23 UTC


README

Build Status Scrutinizer Code Quality Author GitHub license

一个简单的依赖注入容器,用于与 Jaeger(或独立)一起使用。

安装

jaeger-app/di 添加到你的 composer.json 文件中作为需求

$ composer require jaeger-app/di

添加服务

理想情况下,像所有 Jaeger 类一样,你应该扩展 Jaeger\Bootstrap 并在添加自己的服务之前初始化父服务,如下所示

use \JaegerApp\Di;

class MyDi extends Di
{
    public function getServices()
    {
        $this->container = parent::getServices(); //init existing services
		
		//add new service
        $this->container['my_service'] = function ($c) {
            $settings = new NewService;
            return $settings;
        };

		return $this->container;
    }
}

你还可以通过使用 setService($name, \Closure $function) 方法在运行时添加新的服务。

use \JaegerApp\Di;

$di = new Di();
$callable = function() {
    return 'foo to the who';
};

$di->setService('test_service', $callable);

调用服务示例

use \JaegerApp\Di;

$di = new Di();

//get all the services
$services = $di->getServices();

//get a specific service
$db = $services['db']; 

//or get specific service directly
$db = $di->getService('db');