venom / system-settings
A laravel module that will handle system settings for your application.
Installs: 467
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/venom/system-settings
Requires
- illuminate/bus: ^11.21
- illuminate/contracts: ^11.21
- illuminate/database: ^11.21.0
- illuminate/queue: ^11.21
- illuminate/support: ^11.21.0
This package is auto-updated.
Last update: 2026-01-16 06:07:05 UTC
README
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.
What’s included
- 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
Integration in your module (Ignite)
-
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
Dev notes
- 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.