drinky78/silex-service-register-provider

Silex 提供其他提供者的注册服务

1.1.1 2014-10-13 22:06 UTC

This package is not auto-updated.

Last update: 2024-09-24 07:17:04 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 等。