supplycart/settings
Composer 安装命令:
composer require supplycart/settings
包简介
Model settings for Laravel
README 文档
README
Allows eloquent models to have its own settings
Installation
To install, run this on your Laravel installation:
composer require supplycart/settings
Then publish the migration file:
php artisan vendor:publish --tag=migrations --provider=Supplycart\Settings\Providers\SettingsServiceProvider
Usage
To use, you just need to implement the Supplycart\Settings\Contracts\HasSettings contract and use Supplycart\Settings\Traits\HasSettings trait:
use Supplycart\Settings\Contracts\HasSettings as HasSettingsContract; use Supplycart\Settings\Traits\HasSettings; class User extends Model implements HasSettingsContract { use HasSettings; public function getDefaultSettings(): array { return []; } }
Methods
getSetting($key, $default = null)
Retrieve model setting by key. You can use dot notations to get nested setting e.g
$user->getSetting('timezone', 'Asia/Kuala_Lumpur'); $user->getSetting('lang', 'en_my'); $user->getSetting('subscription.newsletter', false);
setSetting($key, $value)
Set model setting using key. You can use dot notation same like getSetting method e.g
$user->setSetting('timezone', 'UTC'); $user->setSetting('lang', 'en_us'); $user->setSetting('subscription.newsletter', true);
getSettings()
Get all settings. It will return array of settings
$settings = $user->getSettings(); // ['timezone' => 'UTC', 'lang' => 'en_us', 'subscription' => ['newsletter' => true]];
supplycart/settings 适用场景与选型建议
supplycart/settings 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 50.89k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2019 年 12 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 supplycart/settings 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 supplycart/settings 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 50.89k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-26