jaeger-app/bootstrap

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

预配置的依赖注入容器和启动初始化对象。

0.1.2 2016-07-05 20:18 UTC

This package is auto-updated.

Last update: 2023-11-18 01:40:47 UTC


README

Build Status Scrutinizer Code Quality Author GitHub license

预配置的依赖注入容器和启动初始化对象。Jaeger Bootstrap 将准备最常用的 Jaeger 对象,并使其准备好使用,同时作为一个独立的依赖注入容器,利用 Pimple\Container

安装

jaeger-app/bootstrap 添加到您的 composer.json 文件中作为需求项

$ composer require jaeger-app/bootstrap

简单示例

use \JaegerApp\Bootstrap;

$bootstrap = new Bootstrap();

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

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

//or ger specific service directly
$db = $bootstrap->getService('db');

配置服务

Jaeger\Bootstrap 设置了许多 Jaeger 对象,并使它们准备好使用。

use \JaegerApp\Bootstrap;
$bootstrap = new Bootstrap();
$db = $bootstrap->getService('db');
$email = $bootstrap->getService('email');
$encrypt = $bootstrap->getService('encrypt');
$lang = $bootstrap->getService('lang');
$validate = $bootstrap->getService('validate');
$files = $bootstrap->getService('files');
$view = $bootstrap->getService('view');
$shell = $bootstrap->getService('shell');
$console = $bootstrap->getService('console');

添加服务

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

use \JaegerApp\Bootstrap;

class MyBootstrap extends Bootstrap
{
    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\Bootstrap;

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

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