Recherche…
Introduction
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');
}