noith / settings
Flexible settings for Laravel
v1.0.0
2026-06-04 21:05 UTC
Requires
- laravel/framework: ^10.0||^11.0||^12.0||^13.0
Requires (Dev)
- orchestra/testbench: ^8.0||^9.0||^10.0
This package is auto-updated.
Last update: 2026-06-04 18:09:23 UTC
README
Flexible database-backed key/value settings for Laravel 10, 11, 12, and 13.
Installation
composer require noith/settings
php artisan vendor:publish --tag=settings-migrations
php artisan migrate
Usage
Helper
// Read
settings('site_name'); // returns value or null
settings('site_name', 'Default'); // with default
// Repository instance
settings()->set('site_name', 'My App');
settings()->has('site_name'); // true
settings()->delete('site_name');
settings()->all(); // Collection of all settings
settings()->refresh(); // reload from DB
Facade
use Settings;
Settings::get('site_name', 'Default');
Settings::set('site_name', 'My App');
Settings::has('site_name');
Settings::delete('site_name');
Settings::all();
Settings::refresh();
Repository via DI
use Noith\Settings\Repositories\SettingsRepository;
class MyService
{
public function __construct(private SettingsRepository $settings) {}
public function handle(): void
{
$this->settings->set('key', 'value');
}
}
Notes
- All settings are loaded into memory once per request (or once per process lifetime with Octane). Call
refresh()to reload from the database when needed. - Values are
string|nullonly. set()writes to the database atomically and updates the in-memory cache immediately.