An easy way to integrate Database Settings with Laravel.
cornford/setter is a Laravel package for an easy way to integrate database settings with laravel..
It currently has 13 GitHub stars and 1.046 downloads on Packagist (latest version v3.0.0).
Install it with composer require cornford/setter.
Discover more Laravel packages by cornford
or browse all Laravel packages to compare alternatives.
Last updated
Think of Setter as an easy way to integrate Settings with Laravel, providing a variety of helpers to speed up the utilisation of application wide settings. These include:
Setting::setSetting::getSetting::forgetSetting::hasSetting::allSetting::clearSetting::expiresBegin by installing this package through Composer. Edit your project's composer.json file to require cornford/setter.
"require": {
"cornford/setter": "3.*"
}
Next, update Composer from the Terminal:
composer update
We now have to publish the packages assets with the following command:
php artisan vendor:publish --provider="Cornford\Setter\Providers\SettingServiceProvider" --tag=setting
We now have to migrate the package database table with the following command:
php artisan migrate
Once this operation completes, the next step is to add the service provider. Open config/app.php, and add a new item to the providers array.
Cornford\Setter\Providers\SettingServiceProvider::class,
The final step is to introduce the facade. Open config/app.php, and add a new item to the aliases array.
'Setting' => Cornford\Setter\Facades\SettingFacade::class,
That's it! You're all set to go.
You can now configure Setter in a few simple steps. Open config/packages/cornford/setter/config.php and update the options as needed.
cache - Enable caching to improve performance by reducing database calls.tag - A tag prefixed to all cache items, e.g. tag::.expiry - The default expiry for cache items, e.g. 60.It's really as simple as using the Setter class in any Controller / Model / File you see fit with:
Setting::
This will give you access to
The set method sets a setting via both a key and a value parameter in the database.
Setting::set('app.url', 'http://localhost');
The get method gets a setting via a key parameter from the database, and a default value can be optionally passed if the setting doesn't exist.
If no default parameter is supplied, and an application configuration variable is present, this will be returned.
Setting::get('app.url', 'http://localhost');
Setting::get('app.url');
The forget method removes a setting via a key parameter from the database.
Setting::forget('app.setting');
The has method returns a true / false based on if a setting is present in the database via a key parameter.
This doesn't fall back to checking application configuration variables.
Setting::has('app.setting');
The all method returns an array of key value pairs of settings from the database.
This doesn't fall back to return application configuration variables.
Setting::all();
The clear method removes all settings from the database.
This doesn't fall back to removing application configuration variables.
Setting::clear();
The expires method sets the cache expiry setting.
Can be false to not cache, true / 0 to cache indefinitely, an integer for minutes, or a datetime of when to expire.
Setting::expires(false);
The uncached method ensures the next get request is requested from the database rather than the cache. It will also re-cache the item if one is found.
Setting::uncached();
Setting::uncached()->get('app.setting');
The cacheEnabled method gets the current caching state returning a true / false based on the cache status, retuning the current Setter instance.
Setting::cacheEnabled();
The enableCache method sets caching state to cache items, retuning the current Setter instance.
Setting::enableCache();
Setting::enableCache()->set('app.url', 'http://localhost');
The disableCache method sets caching state to not cache items.
Setting::disableCache();
Setting::disableCache()->set('app.url', 'http://localhost');
The setCacheTag method sets the currently caching prefix tag.
Setting::setCacheTag('tag:');
The getCacheTag method gets the currently set caching prefix tag.
Setting::getCacheTag();
The cacheHas method returns a true / false based on if a setting is present in the cache via a key parameter.
This doesn't fall back to checking application configuration variables.
Setting::cacheHas('app.setting');
The cacheForget method removes a setting via a key parameter from the cache.
Setting::cacheForget('app.setting');
The cacheExpires method sets the cache expiry setting.
Can be false to not cache, true / 0 to cache indefinitely, an integer for minutes, or a datetime of when to expire.
Setting::cacheExpires(false);
The cacheClear method removes all settings from the cache.
This doesn't fall back to removing application configuration variables.
Setting::cacheClear();
Setter is open-sourced software licensed under the MIT license