mortezamasumi / fb-setting
Key-value settings store with a Filament resource for Laravel.
Requires
- php: ^8.3
- filament/filament: ^5.0
- mortezamasumi/fb-essentials: ^5.0
- spatie/laravel-package-tools: ^1.0
Requires (Dev)
- filament/upgrade: ^5.0
- larastan/larastan: ^3.10
- laravel/pint: ^1.30
- orchestra/testbench: ^10.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-browser: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- pestphp/pest-plugin-livewire: ^4.0
- phpstan/phpstan: ^2.2
This package is auto-updated.
Last update: 2026-08-02 06:31:46 UTC
README
A key-value settings store for Laravel backed by a single fb_settings table, with a Filament resource to manage entries from the panel. Read settings anywhere with a tiny helper, support nested attributes and placeholder substitution, and control which keys are active.
Features
- Simple key-value API —
__fb_setting('key', $default)returns the active value, or your default - Nested attributes — a setting can hold multiple named attributes accessed by key
- Placeholder substitution — replace
:nametokens with runtime values in defaults and stored values - Filament resource — manage settings from the panel (create, edit, replicate, delete, toggle active)
- Localized — ships English and Persian translations
Installation
composer require mortezamasumi/fb-setting
Publish and run the migrations:
php artisan vendor:publish --tag="fb-setting-migrations"
php artisan migrate
Add the plugin to your Filament panel provider:
use Mortezamasumi\FbSetting\FbSettingPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FbSettingPlugin::make(), ]); }
Configuration
Publish the config file with:
php artisan vendor:publish --tag="fb-setting-config"
The published config/fb-setting.php lets you tune the navigation entry (label, icon, badge, sort order). By default the resource appears under the System group with a heroicon-o-cog icon.
Translations ship in the fb-setting namespace (resources/lang/en, resources/lang/fa) and are loaded automatically.
Usage
Read a setting with the global helper (or the FbSetting facade):
// Simple value, falling back to a default when missing or inactive: $schoolName = __fb_setting('school_name', 'My School'); // Nested attributes: $phone = __fb_setting('contact', null, 'phone'); // Placeholder substitution: $message = __fb_setting('sms_template', 'Hello :name', values: ['name' => $user->name]);
Settings are managed from the Filament panel: create a key with a plain value or with a list of attributes, and toggle active to enable or disable it.
Support policy
| PHP | Laravel |
|---|---|
| 8.3 | 12 |
Testing
composer test
The test suite covers the lookup API (defaults, attributes, placeholders, inactive keys) and the resource flows (create, edit, replicate, validation, toggle) using an in-memory SQLite database.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover a security vulnerability, please review our security policy on how to report it.
Changelog
Please see CHANGELOG for recent changes.
License
The MIT License (MIT). See LICENSE.md for details.