jobmetric/laravel-setting
Composer 安装命令:
composer require jobmetric/laravel-setting
包简介
This is a package for a dynamic setting across different Laravel projects.
README 文档
README
Laravel Setting
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.
Why Laravel Setting?
Form-Driven Settings
Define each setting form by extending JobMetric\Setting\Contracts\AbstractSetting and returning a JobMetric\Form\FormBuilder that describes fields.
Application-Key Storage
Each setting form produces a stable formName() (application_key). Values are stored per field under that form.
Fast Reads with Cache
Reads are cached under config('setting.cache_key') (default: SETTING). Cache is invalidated whenever settings are stored or forgotten.
Events and Lifecycle Control
Optionally fire StoreSettingEvent and ForgetSettingEvent when storing or deleting settings.
Namespaced Discovery
Register one or more namespaces in SettingNamespaceRegistry. SettingRegistry can discover and validate all AbstractSetting subclasses inside them.
What is a Setting Form?
A setting form is a class that extends AbstractSetting and implements:
application()key()title()description()form()(returnsFormBuilder)
From these, formName() is built as application() . '_' . key() and used as the main storage identifier (form column in the settings table).
What Awaits You?
By adopting Laravel Setting, you can:
- Create setting form classes with
setting:make - Store values safely with
Setting::dispatch()(class-based) orSetting::dispatchByForm()(raw) - Retrieve values with
Setting::get(),Setting::form()and class helpers likeSetting::getFromClass() - Invalidate cache via
setting:clear - Discover all setting forms through
SettingNamespaceRegistryandSettingRegistry - Listen to store/forget events with optional dispatching control
Quick Start
Install 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.
Usage
Store settings by form name (raw)
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', ]);
Store settings by setting class (validated)
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', ]);
Read settings
use JobMetric\Setting\Facades\Setting; $siteName = Setting::get('app_config_site_name'); $form = Setting::form('app_config');
Read from a setting class
use JobMetric\Setting\Facades\Setting; use App\Settings\ConfigSetting; $siteName = Setting::getFromClass(ConfigSetting::class, 'site_name'); $form = Setting::getFromClass(ConfigSetting::class, null);
Forget settings (delete + cache invalidation)
use JobMetric\Setting\Facades\Setting; Setting::forget('app_config');
Clear cache
php artisan setting:clear
Documentation
Ready to transform your Laravel applications? Our comprehensive documentation is your gateway to mastering Laravel Setting:
The documentation includes:
- Getting Started - installation and migration steps
- Setting Forms -
AbstractSetting,formName(), andFormBuilder - Setting Service - storing, forgetting, cache invalidation, and retrieval APIs
- Registries -
SettingNamespaceRegistryandSettingRegistrydiscovery rules - Commands -
setting:make,setting:clear - Events -
StoreSettingEventandForgetSettingEvent - Helpers -
dispatchSetting,dispatchSettingFromClass, and read/exists utilities - Testing - package tests and common verification flows
Contributing
Thank you for participating in laravel-setting. A contribution guide can be found here.
License
The laravel-setting is open-sourced software licensed under the MIT license. See License File for more information.
jobmetric/laravel-setting 适用场景与选型建议
jobmetric/laravel-setting 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 39 次下载、GitHub Stars 达 6, 最近一次更新时间为 2023 年 12 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「package」 「config」 「laravel」 「setting」 「jobmetric」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jobmetric/laravel-setting 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jobmetric/laravel-setting 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jobmetric/laravel-setting 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Zend Framework module to quickly and easily set PHP settings.
Server environment detection based on config array-file
Simple ASCII output of array data
Single and multi-dimensional parameter bag with dot-path access for PHP.
Alfabank REST API integration
统计信息
- 总下载量: 39
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-12-22