Recherche…


Introduction

Voici une description de la manière dont vous pouvez créer une configuration pour votre propre bundle dans /app/config/config.{yml,xml}

Créer une configuration dans l'application / config / config.yml

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

Ceci est un exemple de base pour créer une configuration au format yml, pour suivre le format yml, vous pouvez prendre une configuration plus approfondie.

Définir la configuration dans le bundle créé

Par exemple, vous avez un bundle, généré par la console symfony. Dans ce cas, dans DependencyInjection / Configuration.php, vous devez insérer votre représentation de configuration:

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

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

En gros, dans DependencyInjection / AmazingserviceExtension.php, vous verrez les lignes suivantes:

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

Ce n'est pas suffisant pour obtenir la configuration dans les Srevices. Vous devez le prendre dans le conteneur.

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

Dans ce cas, la configuration dans le conteneur, donc si votre service obtient le conteneur en tant que paramètre constructeur:

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

Ensuite, vous pouvez obtenir la configuration dans le service avec le code suivant, où la configuration sera un tableau associatif:

private $config;

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow