marcojanssen/silex-service-register-provider

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

Silex 用于注册其他提供者的工具

1.1.0 2013-09-27 12:33 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:27:27 UTC


README

Build Status Scrutinizer Quality Score Code Coverage

ServiceRegisterProvider 是一个用于注册其他提供者的工具。

功能

  • 通过配置注册提供者
  • 使用提供者注册多个提供者
  • 使用提供者注册单个提供者

安装

  • 安装 Composer

  • marcojanssen/silex-service-register-provider 添加到您的 composer.json

{
    "require": {
        "marcojanssen/silex-service-register-provider": "1.1.*"
    }
}
  • 安装/更新您的依赖项

使用方法

注册单个提供者

index.php

use Silex\Application;
use MJanssen\Provider\ServiceRegisterProvider;

$app = new Application();

$provider = array(
    'class' => 'MJanssen\Provider\ServiceProviderFoo',
    'values' => array(
        'foo' => 'baz'
    )
);

$serviceRegisterProvider = new ServiceRegisterProvider();
$serviceRegisterProvider->registerServiceProvider($app, $provider);

注册多个提供者

index.php

use Silex\Application;
use MJanssen\Provider\ServiceRegisterProvider;

$app = new Application();
$serviceRegisterProvider = new ServiceRegisterProvider();

$providers = array(
    array(
        'class' => 'MJanssen\Provider\ServiceProviderFoo'
    ),
    array(
        'class' => 'MJanssen\Provider\ServiceProviderBaz'
    )
);

$serviceRegisterProvider->registerServiceProviders($app, $providers);

使用配置注册提供者

在此示例中,使用 ConfigServiceProvider 读取 yml 文件。ServiceRegisterProvider 默认通过 $app['config.providers'] 中的节点 config.providers 选取存储的配置。如果您想设置不同的键,在实例化 ServiceRegisterProvider 时将其作为参数添加。

services.yml

custom.providers.key:
  validator:
    class: Silex\Provider\ValidatorServiceProvider

  controller.service:
    class: Silex\Provider\ServiceControllerServiceProvider

index.php

use Silex\Application;
use Igorw\Silex\ConfigServiceProvider;
use MJanssen\Provider\ServiceRegisterProvider;

//Set all service providers
$app->register(
    new ConfigServiceProvider(__DIR__."/../app/config/services.yml")
);

//Register all providers
$app->register(
    new ServiceRegisterProvider('custom.providers.key')
);

注意:建议使用 php 文件而不是 yml/xml 等。