euskadi31/config-service-provider

A Config Service Provider for Silex 2.0

v1.0.1 2017-01-31 12:30 UTC

This package is not auto-updated.

Last update: 2024-04-24 14:23:51 UTC


README

Build Status SensioLabsInsight

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.