laradic / config
Laravel 5 config extensions: save to file/db. use namespaces, etc
Installs: 1 483
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=7.1.0
- illuminate/config: ^5.0|^6.0|^7.0|^8.0
- laradic/support: ~2.0
- symfony/expression-language: ~3.0|~4.0
README
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
ordatabase
. Config::getLoader()->set('iam/awesome::my.config.key', 'A changed value')
saves it to a mirroringfile
ordb
- 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