サーチ…


前書き

これは、/ app / config / configファイル内であなた自身のバンドルの設定を作成する方法の説明です。{yml、xml}

app / config / config.ymlで設定を作成する

amazingservice:
    url: 'http://amazing.com'
    client_id: 'test_client_1'
    client_secret: 'test_secret'

これはyml形式の作成設定の基本的な例です。yml形式に従えば、より深い設定が可能です。

作成したバンドルにconfigを設定する

たとえば、symfonyコンソールによって生成されたバンドルがあります。この場合は、DependencyInjection / Configuration.phpにあなたの設定表現を挿入する必要があります:

$treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('amazingservice');

        $rootNode->children()
            ->scalarNode('url')->end()
            ->scalarNode('client_id')->end()
            ->scalarNode('client_secret')->end()
            ->end()
        ->end();

基本的にはDependencyInjection / AmazingserviceExtension.phpに次の行が表示されます:

$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);

Srevicesで設定を取得するだけでは不十分です。あなたはそれを容器に入れなければなりません。

$container->setParameter(
  'amazingservice.config',
  $config
);

この場合、コンテナ内のコンフィグレーションはコンテナパラメータをコンストラクタパラメータとして取得するサービスの場合:

base.amazingservice:
        class: Base\AmazingBundle\Services\AmazingServices
        arguments: [@service_container]

次に、次のコードを使用してサービス内の構成を取得できます。構成は連想配列になります。

private $config;

public function __construct(Container $container){
  $this->config = $container->getParameter('amazingservice.config');   
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow