Pārlūkot izejas kodu

feat(wechat): 引入微信扩展日志类并优化定时任务日志记录

- 新增 Log 类用于微信扩展的日志记录
- 修改 AccessTokenCron 使用依赖注入的日志实例
- 调整日志调用方式,从静态方法改为实例方法
- 在 Extension 类中添加获取扩展 ID 的方法
- 更新相关依赖注入构造函数参数
runphp 4 mēneši atpakaļ
vecāks
revīzija
8c8172345a
3 mainītis faili ar 23 papildinājumiem un 4 dzēšanām
  1. 4 4
      src/Cron/AccessTokenCron.php
  2. 5 0
      src/Extension.php
  3. 14 0
      src/Log.php

+ 4 - 4
src/Cron/AccessTokenCron.php

@@ -8,9 +8,9 @@ use EasyWeChat\Kernel\Contracts\AccessToken as AccessTokenInterface;
 use SixShop\Core\Attribute\Cron;
 use SixShop\Core\Job\BaseJob;
 use SixShop\System\Job\ClosureJob;
+use SixShop\Wechat\Log;
 use SixShop\Wechat\Service\MiniApp;
 use think\facade\Cache;
-use think\facade\Log;
 use function Symfony\Component\String\s;
 
 class AccessTokenCron extends BaseJob
@@ -31,7 +31,7 @@ class AccessTokenCron extends BaseJob
      */
     private int $scheduleRefreshTime = 0;
 
-    public function __construct(private MiniApp $miniApp)
+    public function __construct(private MiniApp $miniApp, private Log $log)
     {
         $this->accessToken = $this->miniApp->getAccessToken();
         $this->cacheKey = Cache::getCachekey($this->accessToken->getKey());
@@ -44,7 +44,7 @@ class AccessTokenCron extends BaseJob
             $expireIn = $this->execute();
             self::dispatch()->delay($expireIn - self::LEAD_TIME);
             $this->scheduleRefreshTime = time() + $expireIn - self::LEAD_TIME;
-            Log::debug('定时刷新小程序 AccessToken 任务已启动,计划执行时间:{time}', [
+            $this->log->debug('定时刷新小程序 AccessToken 任务已启动,计划执行时间:{time}', [
                 'time' => date('Y-m-d H:i:s', $this->scheduleRefreshTime)
             ]);
         }
@@ -60,7 +60,7 @@ class AccessTokenCron extends BaseJob
             $oldToken = $this->accessToken->getToken();
             $newToken = $this->accessToken->refresh();
             $expireIn = Cache::ttl($this->cacheKey);
-            Log::debug('刷新小程序 AccessToken 成功,过期时间:{time}, 结果:{result}', [
+            $this->log->debug('刷新小程序 AccessToken 成功,过期时间:{time}, 结果:{result}', [
                 'time' => date('Y-m-d H:i:s', time() + $expireIn),
                 'result' => $oldToken === $newToken ? '未更新' : '已更新',
             ]);

+ 5 - 0
src/Extension.php

@@ -9,6 +9,11 @@ use SixShop\Wechat\Hook\WechatUserHook;
 
 class Extension extends ExtensionAbstract
 {
+    private const string EXTENSION_ID = 'wechat';
+    public function  getExtensionID()
+    {
+        return self::EXTENSION_ID;
+    }
 
     #[\Override]
     public function getHooks(): array

+ 14 - 0
src/Log.php

@@ -0,0 +1,14 @@
+<?php
+declare(strict_types=1);
+namespace SixShop\Wechat;
+
+use SixShop\System\ExtensionManager;
+use think\App;
+
+class Log extends \SixShop\System\Log
+{
+    public function __construct(App $app, private ExtensionManager $extensionManager, private Extension $extension)
+    {
+        parent::__construct($app, $extensionManager, $extension->getExtensionID());
+    }
+}