Поиск…


Вступление

Это описание того, как вы можете создать конфигурацию для своего собственного пакета в файле /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 вы можете использовать более глубокую конфигурацию.

Установите конфигурацию в созданном комплекте

Например, у вас есть пакет, который генерируется консолью 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
);

В этом случае 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