Downloads
Stars
Version
A simple package that brings the cascading configuration system back into Laravel 5 and its sister project, Lumen.
First, require phanan/cascading-config
into your composer.json
and run composer update
:
"require": {
"phanan/cascading-config": "~2.0"
},
An environment-based configuration directory should have a name with this format config.{APP_ENV}
, and reside in the same directory as the default config
dir. For Laravel, php artisan vendor:publish
will create a sample directory for your local
environment. For Lumen, you'll have to create the directories manually.
Your application structure now should have something like this:
config
├── app.php
├── auth.php
├── cache.php
├── compile.php
├── database.php
├── mail.php
└── ...
config.local
├── app.php
├── auth.php
├── cache.php
├── mail.php
└── nested
└── app.php
Fill the configuration into your environment-based config directory (config.local
, config.staging
, config.production
), just like what you've always done in Laravel 4,
Add the package's service provider class into config/app.php
:
'providers' => [
/*
* ...
*/
App\Providers\AppServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
PhanAn\CascadingConfig\CascadingConfigServiceProvider::class,
],
Call config($key)
Register the service provider class in bootstrap/app.php
:
// $app->register(App\Providers\AppServiceProvider::class);
// $app->register(App\Providers\EventServiceProvider::class);
$app->register(PhanAn\CascadingConfig\CascadingConfigServiceProvider::class);
Enable multi-environment support by uncommenting this line:
Dotenv::load(__DIR__.'/../');
Manually register the configuration arrays:
$app->configure('auth');
$app->configure('cache');
$app->configure('mail');
Call config($key)
Because of the way array_merge_recursive()
works, a config key with value being an indexed (non-associative) array (for instance, app.providers
) will have the value's items overridden. See #6 for more details on this behavior, and how to work around it.
MIT © Phan An