This Package allow users to have their configuration stored in database, makes it easy to customize. Support cache for faster access.
You can install the package via composer:
composer require painlesscode/laravel-dynamic-config
publish the config with:
php artisan vendor:publish --provider="Painless\DynamicConfig\DynamicConfigServiceProvider"
You just need to decide which config file(s) you want them to be dynamically editable by appending file name to dynamic_configs
array :
# /config/dynamic_config.php
return [
'dynamic_configs' => [
'mail',
],
];
dynamic_config
array for testing purpose. You are free to remove it, if you don't need it.- The default values will be taken from the actual config file.
- Adding
dynamic_config
to thedynamic_configs
array have no effect.- You can enable cache for faster access. To enable cache dynamic configuration. just edit
enable_cache
key ofdynamic_config.php
file totrue
.- Cache file will be stored at
bootstrap/cache/dynamic_config.php
file. You can change the cache file name by editingcache_file_name
key of ofdynamic_config.php
file.
echo config('mail.default');
// Will return the value of dynamic mail.default (if mail is already added to dynamic_configs array);
echo config('defailt.mail.default');
// Will return the value of original configuration (if default_prefix is set to 'default');
config('mail.default', 'array');
// It is like default laravel config set. it will be set but persists in only current request.
// to set value permanently
use Painless\DynamicConfig\Facades\DynamicConfig;
// or you can use DynamicConfig Alias
DynamicConfig::set('mail.default', 'ses');
// It will save the value and persist it in database and cache (if enabled)
to revert a config value to its original state:
use Painless\DynamicConfig\Facades\DynamicConfig;
// or you can use DynamicConfig Alias
DynamicConfig::revert('mail.default', 'ses');
// It will revert the config value to its original state and persist it.