aoloe / ConfigServiceProvider

A Config Service Provider for Silex 2.0

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Silex Config Service Provider

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.

About

A Config Service Provider for Silex 2.0

License:MIT License


Languages

Language:PHP 95.1%Language:Makefile 4.9%