quinninteractive / silverstripe-clearkey
Silverstripe模块,用于管理部分缓存失效
1.0.0
2022-12-20 00:46 UTC
Requires
- php: ^8.0 || ^7.4
- silverstripe/admin: ^1.0
- silverstripe/framework: ^4.0
- silverstripe/vendor-plugin: ^1.0
- silverstripe/versioned: ^1.0
Requires (Dev)
- vimeo/psalm: ^4.29
This package is auto-updated.
Last update: 2024-09-21 23:17:49 UTC
README
当使用Silverstripe的部分缓存时,你使用的键通常可以分为两种类型。
- 缓存 标识符 键,有助于区分不同的缓存块
- 缓存 清除 键,告诉我们何时一个块已过时
以这个部分缓存块为例
<% cached 'Promo', $ID, $Link, $Promo.LastEdited, $List('SiteTree').max('LastEdited'), $List('SiteTree').count() %> ... <% end_cached %>
这些 标识符 键有助于区分不同的促销活动
'Promo'
$ID
$Link
这些 清除 键有助于告诉我们内容何时过时
Promo.LastEdited
$List('SiteTree').max('LastEdited')
$List('SiteTree').count()
部分缓存对于 标识符 键表现良好,但必须在每次页面加载时与数据库交互来计算一些 清除 键,特别是聚合键。
ClearKey通过允许你在相关数据对象保存时管理过时数据的清除计算,而不是在每次页面加载时进行,从而解决了这个问题。使用ClearKey,示例缓存块可能看起来像这样
<% cached $ClearKey('Promo'), $ID, $Link %> ... <% end_cached %>
您可以使用相应的配置定义清除键,以描述哪些被更新的类应该使每个键无效。在下面的示例中,每当保存 Promo
或 SiteTree
时,都会使 Promo
键无效。
--- Name: clearkey-config After: - '#corecache' --- QuinnInteractive\ClearKey\Extensions\ClearKeyExtension: invalidators: Promo: - SilverStripe\App\Model\Promo - SilverStripe\CMS\Model\SiteTree AnotherKey: - SilverStripe\App\Model\Something - SilverStripe\CMS\Model\Etc
当前版本:1.0.0