Răsfoiți Sursa

refactor(system): 优化扩展状态钩子中间件注册方式

- 将中间件注册从Closure::fromCallable改为使用$this->handle(...)
- 移除Helper类的引用,直接使用error_response函数
- 更新ExtensionManager中的配置处理逻辑,移除不必要的引用传递
- 修复模块未启用时的错误响应调用方式
runphp 3 luni în urmă
părinte
comite
00a59a3cb7
2 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 1 2
      src/ExtensionManager.php
  2. 3 2
      src/Hook/ExtensionStatusHook.php

+ 1 - 2
src/ExtensionManager.php

@@ -6,7 +6,6 @@ namespace SixShop\System;
 use Composer\InstalledVersions;
 use RuntimeException;
 use SixShop\Core\Contracts\ExtensionInterface;
-use SixShop\Core\Helper;
 use SixShop\Core\Service\CoreService;
 use SixShop\Payment\Contracts\PaymentExtensionInterface;
 use SixShop\System\Config\ExtensionConfig;
@@ -284,7 +283,7 @@ class ExtensionManager extends Service
                 }
             } else {
                 if (isset($item['children'])) {
-                    foreach ($item['children'] as $childKey => &$childItem) {
+                    foreach ($item['children'] as $childKey => $childItem) {
                         if (isset($childItem['field'], $extensionConfig[$childItem['field']])) {
                             $config[$key]['children'][$childKey]['value'] = $extensionConfig[$childItem['field']]['value'];
                         }

+ 3 - 2
src/Hook/ExtensionStatusHook.php

@@ -10,6 +10,7 @@ use SixShop\Core\Helper;
 use SixShop\Core\Request;
 use SixShop\System\Enum\ExtensionStatusEnum;
 use SixShop\System\ExtensionManager;
+use function SixShop\Core\error_response;
 
 class ExtensionStatusHook
 {
@@ -20,7 +21,7 @@ class ExtensionStatusHook
     #[Hook(BeforeRegisterRouteEvent::class)]
     public function addMiddleware(BeforeRegisterRouteEvent $event)
     {
-        $event->addMiddleware(Closure::fromCallable([$this, 'handle']));
+        $event->addMiddleware($this->handle(...));
     }
 
     public function handle(Request $request, Closure $next, $moduleName)
@@ -28,7 +29,7 @@ class ExtensionStatusHook
         $extensionModel = $this->extensionManager->getInfo($moduleName);
         return match ($extensionModel->status) {
             ExtensionStatusEnum::ENABLED => $next($request),
-            default => Helper::error_response(msg: '模块`' . $moduleName . '`未启用', httpCode: 403)
+            default => error_response(msg: '模块`' . $moduleName . '`未启用', httpCode: 403)
         };
     }
 }