Silex Config Service Provider
, (*1)
This service provider for Silex 2.0 uses the Yaml classes from Symfony
to provide a config service to a Silex application, and other service providers., (*2)
Install
Add euskadi31/config-service-provider
to your composer.json
:, (*3)
% php composer.phar require euskadi31/config-service-provider:~1.0
Usage
Configuration
<?php
$env = getenv('APP_ENV') ?: 'prod';
$app = new Silex\Application;
$app->register(new \Euskadi31\Silex\Provider\ConfigServiceProvider(
__DIR__ . '/config/' . $env . '.yml'
));
Now you can specify a prod
and a dev
environment., (*4)
config/prod.yml, (*5)
debug: false
config/dev.yml, (*6)
debug: true
To switch between them, just set the APP_ENV
environment variable. In apache
that would be:, (*7)
SetEnv APP_ENV dev
Or in nginx with fcgi:, (*8)
fastcgi_param APP_ENV dev
Replacements
Also, you can pass an array of replacement patterns as second argument., (*9)
<?php
$app = new Silex\Application;
$app->register(new \Euskadi31\Silex\Provider\ConfigServiceProvider(
__DIR__ . '/config/services.yml',
[
'data_path' => __DIR__ . '/data'
]
));
Now you can use the pattern in your configuration file., (*10)
/config/services.yml, (*11)
xsl.path: %data_path%/xsl
You can also specify replacements inside the config file by using a key with
%foo%
notation:, (*12)
%root_path%: ../..,
xsl.path: %root_path%/xsl
Register order
Make sure you register ConfigServiceProvider last with your application. If you do not do this,
the default values of other Providers will override your configuration., (*13)
License
ConfigServiceProvider is licensed under the MIT license., (*14)