From 04aa60b57420a52fffb374d2d4db45066e91192a Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 13 Jun 2026 01:21:47 +0000 Subject: [PATCH] =?UTF-8?q?refactor(config):=20app=20=E5=86=85=20env()=20?= =?UTF-8?q?=E7=9B=B4=E8=AF=BB=E6=94=B6=E6=95=9B=E5=88=B0=20config()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 config/dootask.php 承载 11 个无 config 对应的 env key(默认值随迁) - 29 处 env() 替换:APP_KEY→config('app.key')、APP_NAME→config('app.name')、其余→config('dootask.*') - 语义逐处保持一致(?:/三元留在调用点);消除 config:cache 后 env() 返回 null 的隐患 - 注:User.php / Setting.php 同时含本批 ide-helper 生成的 @property 注释增量 - 验证:grep env( app/ 归零;composer stan 通过;phpunit 146 测试全过 Co-Authored-By: Claude Fable 5 --- .../Controllers/Api/ApproveController.php | 2 +- app/Http/Controllers/Api/DialogController.php | 4 +- app/Http/Controllers/Api/FileController.php | 2 +- app/Http/Controllers/Api/SystemController.php | 28 +++++++------- app/Http/Controllers/Api/UsersController.php | 2 +- app/Http/Controllers/IndexController.php | 2 +- app/Models/Setting.php | 2 +- app/Models/User.php | 4 +- app/Module/Apps.php | 2 +- app/Module/Doo.php | 2 +- app/Module/Manticore/ManticoreBase.php | 4 +- app/Tasks/DeleteTmpTask.php | 4 +- config/dootask.php | 38 +++++++++++++++++++ 13 files changed, 67 insertions(+), 29 deletions(-) create mode 100644 config/dootask.php diff --git a/app/Http/Controllers/Api/ApproveController.php b/app/Http/Controllers/Api/ApproveController.php index b5676b867..6a3b0c36c 100755 --- a/app/Http/Controllers/Api/ApproveController.php +++ b/app/Http/Controllers/Api/ApproveController.php @@ -36,7 +36,7 @@ class ApproveController extends AbstractController public function __construct() { Apps::isInstalledThrow('approve'); - $this->flow_url = env('FLOW_URL') ?: 'http://approve'; + $this->flow_url = config('dootask.flow_url') ?: 'http://approve'; } /** diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index b7aba7f99..0322efb1e 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -3042,7 +3042,7 @@ class DialogController extends AbstractController */ public function group__transfer() { - if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== env('APP_KEY')) { + if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== config('app.key')) { $user = User::auth(); } // @@ -3352,7 +3352,7 @@ class DialogController extends AbstractController */ public function okr__push() { - if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== env('APP_KEY')) { + if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== config('app.key')) { User::auth(); } $text = trim(Request::input('text')); diff --git a/app/Http/Controllers/Api/FileController.php b/app/Http/Controllers/Api/FileController.php index 400b7bd04..f8d8decf0 100755 --- a/app/Http/Controllers/Api/FileController.php +++ b/app/Http/Controllers/Api/FileController.php @@ -737,7 +737,7 @@ class FileController extends AbstractController File::isNeedInstallApp('office'); // $config = Request::input('config'); - $token = \Firebase\JWT\JWT::encode($config, env('APP_KEY') ,'HS256'); + $token = \Firebase\JWT\JWT::encode($config, config('app.key') ,'HS256'); return Base::retSuccess('成功', [ 'token' => $token ]); diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php index 99b346af6..52eecd5df 100755 --- a/app/Http/Controllers/Api/SystemController.php +++ b/app/Http/Controllers/Api/SystemController.php @@ -53,7 +53,7 @@ class SystemController extends AbstractController { $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } Base::checkClientVersion('0.41.11'); @@ -109,7 +109,7 @@ class SystemController extends AbstractController return Base::retError('自动归档时间不可大于100天!'); } } - if ($all['system_alias'] == env('APP_NAME')) { + if ($all['system_alias'] == config('app.name')) { $all['system_alias'] = ''; } if ($all['system_welcome'] == '欢迎您,{username}') { @@ -183,7 +183,7 @@ class SystemController extends AbstractController // $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $user->identity('admin'); @@ -253,7 +253,7 @@ class SystemController extends AbstractController // $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $all = Request::input(); @@ -277,7 +277,7 @@ class SystemController extends AbstractController } // $setting['open'] = $setting['open'] ?: 'close'; - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { $setting['appid'] = substr($setting['appid'], 0, 4) . str_repeat('*', strlen($setting['appid']) - 8) . substr($setting['appid'], -4); $setting['app_certificate'] = substr($setting['app_certificate'], 0, 4) . str_repeat('*', strlen($setting['app_certificate']) - 8) . substr($setting['app_certificate'], -4); $setting['api_key'] = substr($setting['api_key'], 0, 4) . str_repeat('*', strlen($setting['api_key']) - 8) . substr($setting['api_key'], -4); @@ -323,7 +323,7 @@ class SystemController extends AbstractController $filter = trim(Request::input('filter')); $setting = Base::setting('aibotSetting'); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } Base::checkClientVersion('0.41.11'); @@ -341,7 +341,7 @@ class SystemController extends AbstractController }, ARRAY_FILTER_USE_BOTH); } // - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { foreach ($setting as $key => $item) { if (empty($item)) { continue; @@ -395,7 +395,7 @@ class SystemController extends AbstractController // $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $all = Request::input(); @@ -544,7 +544,7 @@ class SystemController extends AbstractController // $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $all = Request::input(); @@ -609,7 +609,7 @@ class SystemController extends AbstractController return Base::retError($e->getMessage() ?: "验证失败:未知错误", config("ldap.connections.default")); } } elseif ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $all = Base::newTrim(Request::input()); @@ -661,7 +661,7 @@ class SystemController extends AbstractController // $type = trim(Request::input('type')); if ($type == 'save') { - if (env("SYSTEM_SETTING") == 'disabled') { + if (config('dootask.system_setting') == 'disabled') { return Base::retError('当前环境禁止修改'); } $all = Base::newTrim(Request::input()); @@ -694,8 +694,8 @@ class SystemController extends AbstractController */ public function demo() { - $demo_account = env('DEMO_ACCOUNT'); - $demo_password = env('DEMO_PASSWORD'); + $demo_account = config('dootask.demo_account'); + $demo_password = config('dootask.demo_password'); if (empty($demo_account) || empty($demo_password)) { return Base::retError('No demo account'); } @@ -916,7 +916,7 @@ class SystemController extends AbstractController */ public function get__info() { - if (Request::input("key") !== env('APP_KEY')) { + if (Request::input("key") !== config('app.key')) { return []; } return Base::retSuccess('success', [ diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index 7f5a584fc..24b32438a 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -1635,7 +1635,7 @@ class UsersController extends AbstractController } elseif ($type === 'create') { $meetingid = strtoupper(Base::generatePassword(11, 1)); $name = $name ?: Doo::translate("{$user?->nickname} 发起的会议"); - $channel = "DooTask:" . substr(md5($meetingid . env("APP_KEY")), 16); + $channel = "DooTask:" . substr(md5($meetingid . config('app.key')), 16); $meeting = Meeting::createInstance([ 'meetingid' => $meetingid, 'name' => $name, diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index f991ccbfb..d08bd1671 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -301,7 +301,7 @@ class IndexController extends InvokeController if (preg_match("/^\d+\.\d+\.\d+$/", $publishVersion)) { // 判断密钥 $publishKey = Request::header('publish-key'); - if ($publishKey !== env('APP_KEY')) { + if ($publishKey !== config('app.key')) { return Base::retError("key error"); } // 判断版本 diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 89c9f3ae5..10a93dcb5 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -51,7 +51,7 @@ class Setting extends AbstractModel switch ($this->name) { // 系统设置 case 'system': - $value['system_alias'] = ($value['system_alias'] ?? null) ?: env('APP_NAME'); + $value['system_alias'] = ($value['system_alias'] ?? null) ?: config('app.name'); $value['image_compress'] = ($value['image_compress'] ?? null) ?: 'open'; $value['image_quality'] = min(100, max(0, intval($value['image_quality'] ?? 0) ?: 90)); $value['image_save_local'] = ($value['image_save_local'] ?? null) ?: 'open'; diff --git a/app/Models/User.php b/app/Models/User.php index 6452c41d1..29716fc04 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -305,12 +305,12 @@ class User extends AbstractModel if ($onlyUserid && $onlyUserid != $this->userid) { return; } - if (env("PASSWORD_ADMIN") == 'disabled') { + if (config('dootask.password_admin') == 'disabled') { if ($this->userid == 1) { throw new ApiException('当前环境禁止此操作'); } } - if (env("PASSWORD_OWNER") == 'disabled') { + if (config('dootask.password_owner') == 'disabled') { throw new ApiException('当前环境禁止此操作'); } } diff --git a/app/Module/Apps.php b/app/Module/Apps.php index e0669a8df..72cd9b08b 100644 --- a/app/Module/Apps.php +++ b/app/Module/Apps.php @@ -72,7 +72,7 @@ class Apps */ public static function dispatchUserHook(User $user, string $action, string $eventType = '', array $changedFields = []): void { - $appKey = env('APP_KEY', ''); + $appKey = config('app.key') ?: ''; if (empty($appKey)) { info('[appstore_hook] APP_KEY is empty, skip dispatchUserHook'); return; diff --git a/app/Module/Doo.php b/app/Module/Doo.php index 452418f90..599abc17d 100644 --- a/app/Module/Doo.php +++ b/app/Module/Doo.php @@ -53,7 +53,7 @@ class Doo */ public static function licenseContent(): string { - if (env("SYSTEM_LICENSE") == 'hidden') { + if (config('dootask.system_license') == 'hidden') { return ''; } $paths = [ diff --git a/app/Module/Manticore/ManticoreBase.php b/app/Module/Manticore/ManticoreBase.php index 7dc09ec52..8de4cc733 100644 --- a/app/Module/Manticore/ManticoreBase.php +++ b/app/Module/Manticore/ManticoreBase.php @@ -29,8 +29,8 @@ class ManticoreBase */ public function __construct() { - $this->host = env('SEARCH_HOST', 'search'); - $this->port = (int) env('SEARCH_PORT', 9306); + $this->host = config('dootask.search_host'); + $this->port = (int) config('dootask.search_port'); } /** diff --git a/app/Tasks/DeleteTmpTask.php b/app/Tasks/DeleteTmpTask.php index eff0ba2e0..e3ed98680 100644 --- a/app/Tasks/DeleteTmpTask.php +++ b/app/Tasks/DeleteTmpTask.php @@ -65,7 +65,7 @@ class DeleteTmpTask extends AbstractTask break; case 'file': - $day = intval(env("AUTO_EMPTY_FILE_RECYCLE", 365)); + $day = intval(config('dootask.auto_empty_file_recycle')); if ($day <= 0) { return; } @@ -81,7 +81,7 @@ class DeleteTmpTask extends AbstractTask break; case 'tmp_file': - $day = intval(env("AUTO_EMPTY_TEMP_FILE", 30)); + $day = intval(config('dootask.auto_empty_temp_file')); if ($day <= 0) { return; } diff --git a/config/dootask.php b/config/dootask.php new file mode 100644 index 000000000..dfcecdca3 --- /dev/null +++ b/config/dootask.php @@ -0,0 +1,38 @@ + env('SYSTEM_SETTING'), + + // 许可证显示开关:设为 'hidden' 时隐藏系统许可证信息(Doo::license) + 'system_license' => env('SYSTEM_LICENSE'), + + // 演示账号:登录页展示的演示账号(SystemController::demo) + 'demo_account' => env('DEMO_ACCOUNT'), + + // 演示密码:登录页展示的演示账号密码(SystemController::demo) + 'demo_password' => env('DEMO_PASSWORD'), + + // 管理员密码修改开关:设为 'disabled' 时禁止修改管理员密码(User 模型) + 'password_admin' => env('PASSWORD_ADMIN'), + + // 创始人密码修改开关:设为 'disabled' 时禁止修改创始人密码(User 模型) + 'password_owner' => env('PASSWORD_OWNER'), + + // 审批流服务地址:审批微服务的内部访问 URL(ApproveController) + 'flow_url' => env('FLOW_URL'), + + // Manticore 全文搜索服务主机(ManticoreBase) + 'search_host' => env('SEARCH_HOST', 'search'), + + // Manticore 全文搜索服务端口(ManticoreBase) + 'search_port' => env('SEARCH_PORT', 9306), + + // 文件回收站自动清空天数(DeleteTmpTask) + 'auto_empty_file_recycle' => env('AUTO_EMPTY_FILE_RECYCLE', 365), + + // 临时文件自动清理天数(DeleteTmpTask) + 'auto_empty_temp_file' => env('AUTO_EMPTY_TEMP_FILE', 30), + +];