配置管理定义了整个系统都可以使用的配置模块,这里的配置统一有setting这个表来维护,主要目的就是在方便系统开发过程中的配置管理(新增、修改等)操作。
一、特点
- 每个模块都有独立的配置类,这些类都是引用了公共Setting类。这个公共类封装对配置的基本维护,例如缓存。独立配置类之间又是相互独立的,这样避免一些配置安全问题。
- 目前配置提供,string、number、json三种类型
- 所有的配置可以在
配置管理 > 配置列表
中修改
二、使用
- 继承
App\Service\AbstractSettingService
- 按配置的分组封装get、set方法。例如下面的
getUploadSetting
、setUploadSetting
。这里都封装好上传文件的配置获取和修改方法。 ```php <?php declare(strict_types=1);
namespace App\Application\Admin\Service;
use App\Service\AbstractSettingService;
class AdminSettingService extends AbstractSettingService { public function getUploadSetting(string $key = ‘’, $default = ‘’) { return $this->getSettings(‘upload’, $key, $default); }
public function setUploadSetting(array $setting): bool
{
return $this->saveSetting($setting, 'upload');
}
}
3. 配置保存可以直接我们这边保存是调用 `setUploadSetting` 所以不怕会因为前端乱传而修改其他配置的信息。
```php
/**
* 修改上传配置
* @PostMapping(path="setting")
*/
function settingSubmit()
{
$setting = $this->request->post('setting', []);
$res = $this->setting->setUploadSetting($setting);
return $res ? self::returnSuccessJson() : self::returnErrorJson();
}
三、要求
- 为了方便管理配置信息,建议各个模块的配置都以模块名作为配置前缀,例如 demo 模块的
demo_setting1