oriceon / laravel-settings
Laravel 5 persistent settings
Installs: 6 723
Dependents: 2
Suggesters: 0
Security: 0
Stars: 20
Watchers: 2
Forks: 7
Open Issues: 0
Requires
- php: >=5.5.9
- doctrine/dbal: ^2.5|^3.0
- illuminate/support: >=5.4
Requires (Dev)
- illuminate/database: >=5.4
- illuminate/events: >=5.4
- phpunit/phpunit: 6.0.7
README
Laravel-Settings
Laravel 5.4.x persistent settings using JSON cache file
Install process
-
Require this package with composer :
composer require oriceon/laravel-settings
-
Register the ServiceProvider to the
providers
array inconfig/app.php
Oriceon\Settings\SettingsServiceProvider::class,
-
Add an alias for the facade to
aliases
array in yourconfig/app.php
'Settings' => Oriceon\Settings\Facades\Settings::class,
-
Publish the config and migration files now:
php artisan vendor:publish --provider="Oriceon\Settings\SettingsServiceProvider" --force
Change config/settings.php
according to your needs.
Create the settings
table.
php artisan migrate
How to Use it?
Set a value
Settings::set('key', 'value');
Settings::set('key1.key2', 'value');
Get a value
$value = Settings::get('key');
$value = Settings::get('key1.key2');
Get a value with Default Value.
$value = Settings::get('key', 'Default Value');
Get all settings
$values = Settings::getAll();
Note: default, all settings are loaded from cache. If you want to load them from database with this method just call with a parameter:
$values = Settings::getAll($cache = false);
Note: If key is not found (null) in cache or settings table, it will return default value
Has a key
$value = Settings::has('key');
$value = Settings::has('key1.key2');
Forget a value
Settings::forget('key');
Settings::forget('key1.key2');
Clean and update settings from config file
Settings::clean();
Settings::clean(['flush' => true]);
Note: using flush parameter, will forget all values and reload settings from config file
Forget all values
Settings::flush();
Fallback to Laravel config
// Change your config/settings.php
'fallback' => true
Example
/*
* If the value with key => mail.host is not found in cache or DB of Larave Settings
* it will return same value as config::get('mail.host');
*/
Settings::get('mail.host');
Primary config file
// Change your config/settings.php
'primary_config_file' => 'filename'
Note: If you want to have a site config file with all your default settings, create a file in config/ with desired name and create your config file as you want. After that, you may no longer need to enter the file name in setting calls.
Instead Settings::get('filename.setting_key') you will just call for Settings::get('setting_key')
Note: It will work if default value in laravel setting is not set
Get a value via an helper
$value = settings('key');
$value = settings('key', 'default value');
Credits to main author
Fwork package : ABENEVAUT/laravel-settings
Original package : efriandika/laravel-settings