配置管理定义了整个系统都可以使用的配置模块,这里的配置统一有setting这个表来维护,主要目的就是在方便系统开发过程中的配置管理(新增、修改等)操作。

一、特点

  • 每个模块都有独立的配置类,这些类都是引用了公共Setting类。这个公共类封装对配置的基本维护,例如缓存。独立配置类之间又是相互独立的,这样避免一些配置安全问题。
  • 目前配置提供,string、number、json三种类型
  • 所有的配置可以在配置管理 > 配置列表中修改

二、使用

  1. 继承 App\Service\AbstractSettingService
  2. 按配置的分组封装get、set方法。例如下面的 getUploadSettingsetUploadSetting。这里都封装好上传文件的配置获取和修改方法。 ```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); }

  1. public function setUploadSetting(array $setting): bool
  2. {
  3. return $this->saveSetting($setting, 'upload');
  4. }

}


3. 配置保存可以直接我们这边保存是调用 `setUploadSetting` 所以不怕会因为前端乱传而修改其他配置的信息。
```php
 /**
     * 修改上传配置
     * @PostMapping(path="setting")
     */
    function settingSubmit()
    {
        $setting = $this->request->post('setting', []);
        $res = $this->setting->setUploadSetting($setting);

        return $res ? self::returnSuccessJson() : self::returnErrorJson();
    }

三、要求

  1. 为了方便管理配置信息,建议各个模块的配置都以模块名作为配置前缀,例如 demo 模块的 demo_setting1