euskadi31 / config-service-provider
A Config Service Provider for Silex 2.0
Installs: 1 433
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 3
Open Issues: 0
Requires
- silex/silex: ~2.0@dev
- symfony/yaml: ^2.7
Requires (Dev)
- leaphub/phpcs-symfony2-standard: ~2.0.1
- phpunit/phpunit: ^4.7
This package is not auto-updated.
Last update: 2024-11-06 16:57:37 UTC
README
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.
Install
Add euskadi31/config-service-provider
to your composer.json
:
% 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.
config/prod.yml
debug: false
config/dev.yml
debug: true
To switch between them, just set the APP_ENV
environment variable. In apache
that would be:
SetEnv APP_ENV dev
Or in nginx with fcgi:
fastcgi_param APP_ENV dev
Replacements
Also, you can pass an array of replacement patterns as second argument.
<?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.
/config/services.yml
xsl.path: %data_path%/xsl
You can also specify replacements inside the config file by using a key with
%foo%
notation:
%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.
License
ConfigServiceProvider is licensed under the MIT license.