Persistent settings package for Laravel 5.
- Driver support
- Cache settings via laravel cache
- Encrypt / Decrypt setting values
- Dispatch events after action
- Override config values
- Helper function
- Settings by context
- Serialize values
Require this package in your composer.json:
"require": {
"edvinaskrucas/settings": "2.0.0"
}
Laravel Version | Package version |
---|---|
>=5.0, <=5.1 | >= 1.0.0, <= 2.0.0 |
5.2 | >= 2.0.0 |
Add following lines to app/config/app.php
ServiceProvider array
Krucas\Settings\Providers\SettingsServiceProvider::class,
Alias array
'Settings' => Krucas\Settings\Facades\Settings::class
If you want to edit default config file, just publish it to your app folder.
php artisan vendor:publish --provider="Krucas\Settings\Providers\SettingsServiceProvider" --tag="config"
Package comes with several configuration options.
Setting | Description |
---|---|
default |
Setting repository driver. |
cache |
Enable or disable setting cache. |
encryption |
Enable or disable setting value encryption. |
events |
Enable or disable event firing. |
repositories |
Config of all repositories which can be used. |
key_generator |
Key generator class. |
context_serializer |
Context serializer class. |
value_serializer |
Value serializer class. |
override |
Allows you to override values in Laravel config array. |
To use database driver you have to create table in your database. Package provides default table migration, to create it you need to execute artisan command:
$ php artisan settings:table
Set setting value.
Settings::set($key, $value = null);
Get setting value, default value is returned when no value found.
Settings::get($key, $default = null);
Determine if setting exists.
Settings::has($key);
Forget setting value from repository.
Settings::forget($key);
Setting values may be used in certain context. Context can be set using method context()
.
Settings::context(new Context(['user' => 1]));
Context is reset after call of one these methods set
, get
, has
, forget
.
Example how to use settings for different contexts.
$userContext1 = new Context(['user' => 1]);
$userContext2 = new Context(['user' => 2]);
Settings::context($userContext1)->set('key', 'value1');
Settings::context($userContext2)->set('key', 'value2');
// retrieve settings
$userValue1 = Settings::context($userContext1)->get('key'); // value1
$userValue2 = Settings::context($userContext2)->get('key'); // value2
Resolve settings service instance.
settings();
Set setting value.
settings([$key => $value]);
Set setting value for a context.
settings([$key => $value], new Context(['user' => 1]));
Get setting value, default value is returned when no value found.
settings($key, $default = null);
Getting value for a context.
settings($key, $default, new Context(['user' => 1]));
Events gets dispatched if this is not disabled via config (enabled by default).
Dispatched before checking if value is present in repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$context | null or Context | Setting context. |
Dispatched after checking if value is present in repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$status | bool | If setting exists true is passed, otherwise false |
$context | null or Context | Setting context. |
Dispatched before retrieving value from repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$default | mixed | Default setting value. |
$context | null or Context | Setting context. |
Dispatched after retrieving value from repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$value | mixed | Retrieved setting value. |
$default | mixed | Default setting value. |
$context | null or Context | Setting context. |
Dispatched before setting value to repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$value | mixed | Setting value to be set. |
$context | null or Context | Setting context. |
Dispatched after setting value to repository.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$value | mixed | Setting value to be set. |
$context | null or Context | Setting context. |
Dispatched before forgetting value.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$context | null or Context | Setting context. |
Dispatched after forgetting value.
Parameter | Type | Parameter description |
---|---|---|
$key | string | Setting key. |
$context | null or Context | Setting context. |