From 7c362f7350fd7ed24e57f071560134f25e1dbe11 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 12 Nov 2024 16:46:41 +0800 Subject: [PATCH] * [refac] add cache scope. --- config/cache.php | 1 + module/cache/config/form.php | 1 + module/cache/lang/zh-cn.php | 24 +++++++++++++++--------- module/cache/ui/setting.html.php | 28 ++++++++++++++++++++++++---- 4 files changed, 41 insertions(+), 13 deletions(-) diff --git a/config/cache.php b/config/cache.php index 7be4a90357..e4230ee6f0 100644 --- a/config/cache.php +++ b/config/cache.php @@ -3,6 +3,7 @@ $config->cache = new stdclass(); $config->cache->enable = false; // 是否开启缓存。Enable cache or not. $config->cache->driver = ''; // 缓存驱动。 The driver of cache. Can be File|Yac|Apcu|Redis. +$config->cache->scope = ''; // 缓存服务范围。The scope of cache. Can be private|shared. $config->cache->namespace = ''; // 缓存命名空间。The namespace of cache. $config->cache->lifetime = 2592000; // 缓存生存时间。The lifetime of cache. The default value is 30 days. diff --git a/module/cache/config/form.php b/module/cache/config/form.php index 90d0502b68..b61efeaab4 100644 --- a/module/cache/config/form.php +++ b/module/cache/config/form.php @@ -3,5 +3,6 @@ $config->cache->form = new stdClass(); $config->cache->form->setting = array(); $config->cache->form->setting['enable'] = array('type' => 'int', 'default' => 0); $config->cache->form->setting['driver'] = array('type' => 'string', 'default' => ''); +$config->cache->form->setting['scope'] = array('type' => 'string', 'default' => ''); $config->cache->form->setting['namespace'] = array('type' => 'string', 'default' => ''); $config->cache->form->setting['redis'] = array('type' => 'array', 'default' => array('host' => '', 'port' => 0, 'username' => '', 'password' => '', 'serializer' => '')); diff --git a/module/cache/lang/zh-cn.php b/module/cache/lang/zh-cn.php index 643adcdaa9..117d5a83ea 100644 --- a/module/cache/lang/zh-cn.php +++ b/module/cache/lang/zh-cn.php @@ -1,8 +1,10 @@ cache->clear = '清除缓存'; $lang->cache->clearSuccess = '清除成功'; -$lang->cache->type = '缓存类型'; -$lang->cache->namespace = '缓存命名空间'; +$lang->cache->status = '状态'; +$lang->cache->type = '服务'; +$lang->cache->namespace = '命名空间'; +$lang->cache->scope = '服务范围'; $lang->cache->memory = '内存使用'; $lang->cache->usedMemory = '总计 %s,已使用 %s'; @@ -12,19 +14,22 @@ $lang->cache->statusList[0] = '关闭'; $lang->cache->driverList['apcu'] = 'APCu'; $lang->cache->driverList['redis'] = 'Redis'; +$lang->cache->scopeList['private'] = '本应用独享'; +$lang->cache->scopeList['shared'] = '多应用共享'; + $lang->cache->apcu = new stdClass(); $lang->cache->apcu->notice = '使用 APCu 缓存需要先加载 APCu 扩展。'; $lang->cache->apcu->notLoaded = '请加载 APCu 扩展后再开启数据缓存'; $lang->cache->apcu->notEnabled = '请启用 apc.enabled 选项后再开启数据缓存'; $lang->cache->redis = new stdClass(); -$lang->cache->redis->host = 'Redis 主机'; -$lang->cache->redis->port = 'Redis 端口'; -$lang->cache->redis->username = 'Redis 用户名'; -$lang->cache->redis->password = 'Redis 密码'; -$lang->cache->redis->serializer = 'Redis 序列化器'; -$lang->cache->redis->notice = '使用 Redis 缓存需要先加载 Redis 扩展。'; -$lang->cache->redis->notLoaded = '请加载 Redis 扩展后再开启数据缓存。'; +$lang->cache->redis->host = 'Redis 主机'; +$lang->cache->redis->port = 'Redis 端口'; +$lang->cache->redis->username = 'Redis 用户名'; +$lang->cache->redis->password = 'Redis 密码'; +$lang->cache->redis->serializer = 'Redis 序列化器'; +$lang->cache->redis->notice = '使用 Redis 缓存需要先加载 Redis 扩展。'; +$lang->cache->redis->notLoaded = '请加载 Redis 扩展后再开启数据缓存。'; $lang->cache->redis->igbinaryNotLoaded = '请加载 igbinary 扩展后再开启数据缓存。'; $lang->cache->redis->serializerList['serialize'] = 'PHP 内置序列化器'; @@ -36,3 +41,4 @@ $lang->cache->redis->tips->serializer = '数据需要序列化后缓存。更改 $lang->cache->tips = new stdClass(); $lang->cache->tips->namespace = '命名空间用来防止不同应用间缓存数据冲突。更改命名空间会清空缓存数据。'; +$lang->cache->tips->scope = '如果缓存服务只有本应用使用请选择『本应用独享』,否则选择『多应用共享』。'; diff --git a/module/cache/ui/setting.html.php b/module/cache/ui/setting.html.php index 6601c8839d..96ee727aeb 100644 --- a/module/cache/ui/setting.html.php +++ b/module/cache/ui/setting.html.php @@ -30,20 +30,21 @@ formPanel on::change('input[name=redis\\\[serializer\\\]]', 'toggleSerializer'), formGroup ( - set::label($lang->cache->common), + set::label($lang->cache->status), + set::required(), radioList ( set::name('enable'), set::items($lang->cache->statusList), set::value($config->cache->enable), set::inline(true) - ), - set::required() + ) ), formGroup ( setClass('cache' . $hiddenCache), set::label($lang->cache->type), + set::required(), radioList ( setClass('w-1/3'), @@ -63,8 +64,27 @@ formPanel setClass('redis ml-4 mt-1.5' . $hiddenRedis), icon('info text-warning mr-2'), $lang->cache->redis->notice + ) + ), + formGroup + ( + setClass('cache' . $hiddenCache), + set::label($lang->cache->scope), + set::required(), + radioList + ( + setClass('w-1/3'), + set::name('scope'), + set::items($lang->cache->scopeList), + set::value($config->cache->scope), + set::inline(true) ), - set::required() + span + ( + setClass('ml-4 mt-1.5'), + icon('info text-warning mr-2'), + $lang->cache->tips->scope + ) ), formGroup (