qwince / l5-settings
Persistent settings in Laravel.
Requires
- php: >=5.3.0
- illuminate/support: >=4.1 <6.0
Requires (Dev)
- illuminate/database: >=4.1 <6.0
- illuminate/filesystem: >=4.1 <6.0
- mockery/mockery: 0.9.*
Suggests
- illuminate/database: Save settings to a database table.
- illuminate/filesystem: Save settings to a JSON file.
This package is auto-updated.
Last update: 2024-12-10 03:13:48 UTC
README
Persistent, application-wide settings for Laravel.
Installation
composer require qwince/l5-settings:dev-master
- Add
qwince\LaravelSettings\SettingsServiceProvider::class,
to the array of providers inconfig/app.php
. - Publish config file and migration by running
php artisan vendor:publish --provider="qwince\LaravelSettings\SettingsServiceProvider"
. - Optional: add
'Setting' => qwince\LaravelSettings\SettingsFacade::class,
to the array of aliases inconfig/app.php
.
Usage
Global settings
You can either access the setting store via its facade or inject it by type-hinting towards the abstract class qwince\LaravelSettings\SettingStore
.
<?php Setting::set('foo', 'bar'); Setting::get('foo', 'default value'); Setting::forget('foo'); $settings = Setting::all(); ?>
User settings
Create a Setting model app/Setting.php using the following example:
<?php namespace App; use qwince\LaravelSettings\SettingModel; class Setting extends SettingModel { }
Next, use the SettingUserTrait trait in your existing User model. For example:
<?php namespace App; use qwince\LaravelSettings\Traits\SettingsUserTrait; class User extends Authenticatable { use SettingsUserTrait; }
This will enable the relation with Setting and add the following methods settings()
, hasSetting($key)
, getSetting($key)
, setSetting($key, $value, $description)
activate($key)
and deactivate($key)
within your User model.
Contact
Open an issue on GitHub if you have any problems or suggestions.
License
The contents of this repository is released under the MIT license.