This package provides a robust service and model for application settings, plus helpers, a facade, and a registry for module definitions. It’s designed to plug into multi-module apps.
- Service:
Venom\SystemSettings\Services\SystemSettingsService - Model:
Venom\SystemSettings\Models\SystemSettings - Facade:
Venom\SystemSettings\Facades\Settings - Helpers:
settings()andsetting() - Registry:
Venom\SystemSettings\Support\SettingsRegistry - Provider auto-registered via Composer
-
Use the model subclass (example):
- See
src/Stubs/Ignite/Settings/Models/GeneralSettings/Settings.php:- Extends the library model.
- Uses
config('system_settings.table_name', 'system_settings').
- See
-
Use the service subclass (example):
- See
src/Stubs/Ignite/Settings/Services/GeneralSettings/SettingsService.php:- Extends the library service and only injects the model.
- No overrides needed; you get methods:
all,get,set,setMany,delete,clearCache,getByCategory.
- See
-
Configure (optional):
- In
config/system_settings.php, you may set:'model' => Ignite\Settings\Models\GeneralSettings\Settings::class'service' => Ignite\Settings\Services\GeneralSettings\SettingsService::class
- In
-
Helpers and facade:
setting('organization_name')to fetch a single value.settings()->setMany([...])for batch updates.- Facade
Venom\SystemSettings\Facades\Settingsresolvessettingsbinding.
-
Definitions format
- See
src/Stubs/Modules/Settings/definitions.phpfor corrected examples. - For file fields with a custom rule, use:
'validation' => ['nullable', new ImageOrString(), 'max:2048']
- See
-
Registry
- The provider scans
Modules/*/app/Settings/definitions.phpand registers them insettings.registry. You can query it viaapp('settings.registry').
- The provider scans
- After updating composer.json, run
composer dump-autoload. - The service handles file uploads and deletes old files in
public/uploads/settingsby default. - The model supports types:
string,integer,boolean,float,number(as float),array,json.