Package Data | |
---|---|
Maintainer Username: | oriceon |
Package Create Date: | 2017-05-24 |
Package Last Update: | 2023-05-22 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-14 15:14:48 |
Package Statistics | |
---|---|
Total Downloads: | 6,718 |
Monthly Downloads: | 26 |
Daily Downloads: | 0 |
Total Stars: | 20 |
Total Watchers: | 2 |
Total Forks: | 7 |
Total Open Issues: | 0 |
Laravel 5.4.x persistent settings using JSON cache file
Require this package with composer :
composer require oriceon/laravel-settings
Register the ServiceProvider to the providers
array in config/app.php
Oriceon\Settings\SettingsServiceProvider::class,
Add an alias for the facade to aliases
array in your config/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
Settings::set('key', 'value');
Settings::set('key1.key2', 'value');
$value = Settings::get('key');
$value = Settings::get('key1.key2');
$value = Settings::get('key', 'Default Value');
$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
$value = Settings::has('key');
$value = Settings::has('key1.key2');
Settings::forget('key');
Settings::forget('key1.key2');
Settings::clean();
Settings::clean(['flush' => true]);
Note: using flush parameter, will forget all values and reload settings from config file
Settings::flush();
// Change your config/settings.php
'fallback' => true
/*
* 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');
// 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
$value = settings('key');
$value = settings('key', 'default value');
Fwork package : ABENEVAUT/laravel-settings
Original package : efriandika/laravel-settings