Buscar..


Introducción

Esta es una descripción de cómo puede crear una configuración para su propio paquete en /app/config/config.{yml,xml}

Crear configuración en la aplicación / config / config.yml

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

Este es un ejemplo básico para crear la configuración en formato yml, para seguir el formato yml puede tomar una configuración más profunda.

Establecer la configuración en el paquete creado

Por ejemplo, tienes un paquete generado por la consola de Symfony. En este caso, en DependencyInjection / Configuration.php, debe insertar su representación de configuración:

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

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

Básicamente, en DependencyInjection / AmazingserviceExtension.php verá las siguientes líneas:

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

No es suficiente para obtener la configuración en los servicios. Tienes que llevarlo al contenedor.

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

En este caso, la configuración en el contenedor, entonces si su Servicio obtiene el contenedor como un parámetro de constructor:

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

Luego, puede obtener la configuración en el servicio con el siguiente código, donde la configuración será una matriz asociativa:

private $config;

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow