miladev / lara-setting
A laravel package for managing project settings.
Requires
- php: >=5.4.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-01 08:44:07 UTC
README
A laravel package for managing project settings.
We always need to use a settings system in our application. This package will help you to create the system easily.
The package will create a table in database named settings with key, value and autoload column. You can specify which
column should be loaded in boot time by setting autoload column to true.
Installation
You can install the package via composer:
composer require miladev/lara-setting
If you are using Laravel Package Auto-Discovery, you don't need you to manually add the ServiceProvider.
Without auto-discovery:
If you don't use auto-discovery, add the below ServiceProvider to the $providers array in config/app.php file.
Miladev\LaravelSettings\SettingServiceProvider::class,
Then add the Setting facade in $aliases array in config/app.php file.
'Setting' => \Miladev\LaravelSettings\Facades\Setting::class,
Then you can run migration command to create database table.
php artisan migrate
You can also publish the migration file and modify as you needs.
php artisan vendor:publish --provider="Miladev\LaravelSettings\SettingServiceProvider"
Usage
use Miladev\LaravelSettings\Facades\Setting; Setting::set('setting_key', 'setting_value', $autoload); // create or update // Here, $autoload = true if you want to indicate that this should be loaded by default. Setting::has('setting_key'); // check whether the key exists or not Setting::get('setting_key', 'default_value'); // get the value Setting::forget('setting_key'); // remove from the settings table Setting::clean(); // remove all rows from the settings table Setting::all(); // get all settings
Storage Drivers
By default settings are stored in the settings database table. You can switch to a
file or Redis backed store via the driver config key. Publish the config first:
php artisan vendor:publish --provider="Miladev\LaravelSettings\SettingServiceProvider" --tag=config
Then in config/settings.php:
return [ 'driver' => 'file', // database | file | redis 'ttl' => 60, // minutes; 0 = forever 'file_path' => null, // used by 'file' driver; defaults to storage_path('framework/cache/lara-setting') ];
For the redis driver, ensure a redis cache store is configured in config/cache.php
(the default Laravel install ships with one).
Roadmap
- Multiple storage drivers (database, file, Redis, custom)
- Typed values and automatic serialization/deserialization (arrays, JSON)
- Encryption support for sensitive values
- Validation rules for keys and values
- Per-setting expiration / TTL support
- Import/export (JSON/CSV) of settings
- Artisan commands for managing settings (list, set, forget, export)
- Blade directives and helper functions for easy retrieval
- Events and hooks on create/update/delete
If you want to contribute, open a pull request by following Laravel contribution guide.
License
The MIT License (MIT). Please see License File for more information.