Ricerca…


introduzione

Questa è una descrizione di come puoi creare la configurazione per il tuo bundle in /app/config/config.{yml,xml}

Crea configurazione nell'app / config / config.yml

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

Questo è un esempio di base per creare la configurazione in formato yml, per seguire il formato yml è possibile effettuare una configurazione più profonda.

Imposta la configurazione nel pacchetto creato

Ad esempio hai un pacchetto, che viene generato dalla console di symfony. In questo caso in DependencyInjection / Configuration.php è necessario inserire la rappresentazione di configurazione:

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

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

Fondamentalmente in DependencyInjection / AmazingserviceExtension.php vedrai le seguenti linee:

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

Non è sufficiente per ottenere la configurazione in Srevices. Devi portarlo nel contenitore.

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

In questo caso la configurazione nel contenitore, quindi se il servizio ottiene il contenitore come parametro costruttore:

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

Quindi è possibile ottenere la configurazione nel servizio con il seguente codice, in cui la configurazione sarà un array associativo:

private $config;

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow