在建立的包中設定配置

例如,你有一個由 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');   
}