egough / laravel-settings
Database-backed application and model settings for Laravel.
v1.4.1
2026-10-27 20:06 UTC
Requires
- php: ^8.2 || ^8.3 || ^8.4
- illuminate/cache: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/config: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/console: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/database: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/events: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/view: ^10.0 || ^11.0 || ^12.0 || ^13.0
Requires (Dev)
- laravel/pint: ^1.0
- phpunit/phpunit: ^11.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Add global and per-model settings for your Laravel application.
Settings are stored in the database, automatically cached for performance, and exposed through a clean, expressive API including a global helper, a facade, Blade directives, and support for dependency injection.
Provides a simple, typed and cacheable way to store dynamic configuration outside of .env and static config files, including per-model settings such as user or team preferences.
Quick Example
// Application setting settings()->set('site.name', 'My Application'); settings()->get('site.name'); // Model-specific setting $user->settings()->set('ui.theme', 'dark'); $user->settings()->get('ui.theme'); // Feature flag if (flag('billing.enabled')) { // Feature enabled }
Adding to your model:
use Egough\LaravelSettings\Traits\HasSettings; class User extends Authenticatable { use HasSettings; }
Blade usage:
@hasFlag('billing.enabled') <x-billing-panel /> @endhasFlag <title>@setting('site.name')</title>
Installation
composer require egough/laravel-settings:^1.0
Publish configuration and migrations:
php artisan vendor:publish --tag=settings-config php artisan vendor:publish --tag=settings-migrations php artisan vendor:publish --tag=settings-model-migrations php artisan migrate
Requirements
- PHP 8.2+
- Laravel 10, 11, 12, or 13
License
MIT
