Szukaj…


Wprowadzenie

To jest opis, w jaki sposób możesz stworzyć konfigurację dla własnego pakietu w /app/config/config.{yml,xml}

Utwórz konfigurację w aplikacji / config / config.yml

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

Jest to podstawowy przykład tworzenia konfiguracji w formacie yml. Aby postępować zgodnie z formatem yml, możesz wziąć głębszą konfigurację.

Ustaw konfigurację w utworzonym pakiecie

Na przykład masz pakiet wygenerowany przez konsolę symfony. W tym przypadku w DependencyInjection / Configuration.php musisz wstawić reprezentację konfiguracji:

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

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

Zasadniczo w DependencyInjection / AmazingserviceExtension.php zobaczysz następujące linie:

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

Nie wystarczy pobrać konfigurację w Srevices. Musisz wziąć to do pojemnika.

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

W tym przypadku konfiguracja w kontenerze, więc jeśli twoja usługa pobiera kontener jako parametr konstruktora:

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

Następnie możesz uzyskać konfigurację w usłudze za pomocą następującego kodu, gdzie konfiguracja będzie tablicą asocjacyjną:

private $config;

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow