laradic-old/config


Laravel 5 Config exras like namespaces, saving to db/file. yaml/php array parser etc

License: GPL-3.0+

Language: PHP


Laravel logo Laravel 5 Config package

GitHub Version Total Downloads License

Version 1.3

Features

  • Namespaced config (like laravel 4: Config::get('vendor/package::config.item'))
  • Namespaced publishing (like laravel 4: config/packages/VENDOR/PACKAGE/config.php)
  • Or use the standard Laravel 5 way: Compatible with laravel 5 default configs. Adding the package will not invalidate your current setup.
  • Persistent configuration. Save changes to a mirroring file or database.
  • Config::getLoader()->set('iam/awesome::my.config.key', 'A changed value') saves it to a mirroring file or db
  • Supports PHP, YAML and soon also XML configuration files.

Overview ^


Installation ^

Composer
"laradic/config": "1.3.*"
Service provider
"Laradic\Config\ConfigServiceProvider"
Bootstrapper

Replace the default laravel Illuminate\Foundation\Bootstrap\LoadConfiguration bootstrapper with Laradic\Config\Bootstrap\LoadConfiguration bootstrapper inside app/Http/Kernel.php and app/Console/Kernel.php.

use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
    protected $bootstrappers = [
        'Illuminate\Foundation\Bootstrap\DetectEnvironment',
        'Laradic\Config\Bootstrap\LoadConfiguration',
        'Illuminate\Foundation\Bootstrap\ConfigureLogging',
        'Illuminate\Foundation\Bootstrap\HandleExceptions',
        'Illuminate\Foundation\Bootstrap\RegisterFacades',
        'Illuminate\Foundation\Bootstrap\RegisterProviders',
        'Illuminate\Foundation\Bootstrap\BootProviders',
    ];
}

Basic usage ^

Inside any ServiceProvider:

class YourServiceProvider extends ServiceProvider
{
    use ConfigProviderTrait;

    public function register()
    {
        $this->addConfigComponent('vendorname/packagename', 'vendorname/packagename', realpath(__DIR__.'/../resources/config'));    
    }
}
  • Namespaced configuration can be accessed with Config::get('vendorname/packagename::config.item').
  • Publishing the config file is done with the default laravel vendor:publish command.

Persistent config ^

You can set persistent config items, by default the values will be saved in a seperate, mirrored file that gets merged on boot. It is also possible to save to database.

Inside the config file you can change the save method by changing the [loader] value.

return array(
    'loader' => 'file',
    'loaders' => array(
        'file' => array(
            'save_path' => storage_path('laradic_config')
        ),
        'db' => array(
            'table' => 'config'
        )
    ),
    //.... other options
);

Important: If you plan on using the db loader, you will have to run the included migration that will create the required config database table.

You can set persistent config values like this:

Config::getLoader()->set('config.item', 'value');

Todo ^

  • YAML/YML file support.
  • Database saving
  • XML file support
  • Unit tests

Copyright/License ^

Copyright 2015 Robin Radic - MIT Licensed

Project Statistics

Sourcerank 6
Repository Size 216 KB
Stars 6
Forks 1
Watchers 2
Open issues 0
Dependencies 4
Contributors 1
Tags 12
Created
Last updated
Last pushed

Top Contributors See all

Robin Radic

Packages Referencing this Repo

laradic/config
Laravel 5 config extensions: save to file/db. use namespaces, etc
Latest release 1.3.8 - Updated - 6 stars

Recent Tags See all

1.3.8 May 05, 2015
1.3.7 May 05, 2015
1.3.6 May 02, 2015
1.3.5 May 01, 2015
1.3.4 May 01, 2015
1.3.3 May 01, 2015
1.3.2 April 28, 2015
1.3.1 April 27, 2015
1.3.0 April 27, 2015
1.2.0 March 24, 2015
1.1.0 March 24, 2015
1.0.0 March 07, 2015

Something wrong with this page? Make a suggestion

Last synced: 2016-05-27 17:00:18 UTC

Login to resync this repository