fix: make subscribe url cofig changes take effect immediately under octane
This commit is contained in:
+4
-11
@@ -125,26 +125,19 @@ class Helper
|
|||||||
{
|
{
|
||||||
$path = route('client.subscribe', ['token' => $token], false);
|
$path = route('client.subscribe', ['token' => $token], false);
|
||||||
|
|
||||||
// 如果已提供订阅URL,直接处理并返回
|
|
||||||
if ($subscribeUrl) {
|
if ($subscribeUrl) {
|
||||||
$finalUrl = rtrim($subscribeUrl, '/') . $path;
|
$finalUrl = rtrim($subscribeUrl, '/') . $path;
|
||||||
return HookManager::filter('subscribe.url', $finalUrl);
|
return HookManager::filter('subscribe.url', $finalUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 使用静态缓存避免重复查询配置
|
$urlString = (string)admin_setting('subscribe_url', '');
|
||||||
if (self::$subscribeUrlCache === null) {
|
$subscribeUrlList = $urlString ? explode(',', $urlString) : [];
|
||||||
$urlString = (string)admin_setting('subscribe_url', '');
|
|
||||||
self::$subscribeUrlCache = $urlString ? explode(',', $urlString) : [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果没有配置订阅URL,使用默认URL
|
if (empty($subscribeUrlList)) {
|
||||||
if (empty(self::$subscribeUrlCache)) {
|
|
||||||
return HookManager::filter('subscribe.url', url($path));
|
return HookManager::filter('subscribe.url', url($path));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 高效随机选择URL并处理
|
$selectedUrl = self::replaceByPattern(Arr::random($subscribeUrlList));
|
||||||
$randomIndex = array_rand(self::$subscribeUrlCache);
|
|
||||||
$selectedUrl = self::replaceByPattern(self::$subscribeUrlCache[$randomIndex]);
|
|
||||||
$finalUrl = rtrim($selectedUrl, '/') . $path;
|
$finalUrl = rtrim($selectedUrl, '/') . $path;
|
||||||
|
|
||||||
return HookManager::filter('subscribe.url', $finalUrl);
|
return HookManager::filter('subscribe.url', $finalUrl);
|
||||||
|
|||||||
Reference in New Issue
Block a user