Zoeken…


Invoering

Dit is een beschrijving hoe u een configuratie voor uw eigen bundel kunt maken in de /app/config/config.{yml,xml}

Maak een configuratie in de app / config / config.yml

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

Dit is een basisvoorbeeld voor het maken van een configuratie in yml-indeling, voor het volgen van de yml-indeling kunt u een diepere configuratie gebruiken.

Stel de configuratie in de gemaakte bundel in

U hebt bijvoorbeeld een bundel die wordt gegenereerd door de symfony-console. In dit geval moet u in de DependencyInjection / Configuration.php uw configuratieweergave invoegen:

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

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

In principe zie je in de DependencyInjection / AmazingserviceExtension.php de volgende regels:

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

Het is niet voldoende om de configuratie in de Srevices te krijgen. Je moet het in de container nemen.

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

In dit geval de configuratie in de container, dus als uw Service de container als constructorparameter krijgt:

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

Vervolgens kunt u de configuratie in de service krijgen met de volgende code, waarbij de configuratie een associatieve array is:

private $config;

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow