This is a package for a dynamic setting across different Laravel projects.
jobmetric/laravel-setting is a Laravel package for this is a package for a dynamic setting across different laravel projects..
It currently has 6 GitHub stars and 78 downloads on Packagist (latest version 2.0.0).
Install it with composer require jobmetric/laravel-setting.
Discover more Laravel packages by jobmetric
or browse all Laravel packages to compare alternatives.
Last updated
Build Dynamic Settings. Manage Them Safely.
Laravel Setting lets you define application settings as form-driven classes and store/retrieve them from a database-backed cache. Stop scattering config values across controllers and configs. Use a unified settings layer with validation, caching, discovery, and clear storage keys.
Define each setting form by extending JobMetric\Setting\Contracts\AbstractSetting and returning a JobMetric\Form\FormBuilder that describes fields.
Each setting form produces a stable formName() (application_key). Values are stored per field under that form.
Reads are cached under config('setting.cache_key') (default: SETTING). Cache is invalidated whenever settings are stored or forgotten.
Optionally fire StoreSettingEvent and ForgetSettingEvent when storing or deleting settings.
Register one or more namespaces in SettingNamespaceRegistry. SettingRegistry can discover and validate all AbstractSetting subclasses inside them.
A setting form is a class that extends AbstractSetting and implements:
application()key()title()description()form() (returns FormBuilder)From these, formName() is built as application() . '_' . key() and used as the main storage identifier (form column in the settings table).
By adopting Laravel Setting, you can:
setting:makeSetting::dispatch() (class-based) or Setting::dispatchByForm() (raw)Setting::get(), Setting::form() and class helpers like Setting::getFromClass()setting:clearSettingNamespaceRegistry and SettingRegistryInstall Laravel Setting via Composer:
composer require jobmetric/laravel-setting
Run migrations:
php artisan migrate
Create a setting form class:
php artisan setting:make ConfigSetting --application=app --title="Config" --description="Application configuration"
Edit the generated class and implement form() by adding the desired fields using FormBuilder.
Use dispatchByForm() (or the dispatchSetting() helper). Keys in the object must start with the form prefix ({application_key}_...).
use JobMetric\Setting\Facades\Setting;
Setting::dispatchByForm('app_config', [
'app_config_site_name' => 'My Site',
'app_config_site_url' => 'https://example.com',
]);
Or via helper:
dispatchSetting('app_config', [
'app_config_site_name' => 'My Site',
]);
Use dispatch() (or dispatchSettingFromClass()) for class-based dispatch with DTO validation via FormBuilderRequest.
use JobMetric\Setting\Facades\Setting;
use App\Settings\ConfigSetting;
Setting::dispatch(ConfigSetting::class, [
'site_name' => 'My Site',
]);
use JobMetric\Setting\Facades\Setting;
$siteName = Setting::get('app_config_site_name');
$form = Setting::form('app_config');
use JobMetric\Setting\Facades\Setting;
use App\Settings\ConfigSetting;
$siteName = Setting::getFromClass(ConfigSetting::class, 'site_name');
$form = Setting::getFromClass(ConfigSetting::class, null);
use JobMetric\Setting\Facades\Setting;
Setting::forget('app_config');
php artisan setting:clear
Ready to transform your Laravel applications? Our comprehensive documentation is your gateway to mastering Laravel Setting:
📚 Read Full Documentation ->
The documentation includes:
AbstractSetting, formName(), and FormBuilderSettingNamespaceRegistry and SettingRegistry discovery rulessetting:make, setting:clearStoreSettingEvent and ForgetSettingEventdispatchSetting, dispatchSettingFromClass, and read/exists utilitiesThank you for participating in laravel-setting. A contribution guide can be found here.
The laravel-setting is open-sourced software licensed under the MIT license. See License File for more information.