etc-plugins/etc_cache

为 Textpattern CMS 提供事件驱动的缓存解决方案。

安装: 43

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 4

分支: 2

开放性问题: 0

类型:textpattern-plugin

0.2.8 2018-08-31 14:50 UTC

This package is auto-updated.

Last update: 2024-08-29 03:21:01 UTC


README

下载 | Packagist

此 Textpattern 插件为 Textpattern CMS 提供事件驱动的缓存解决方案。

Textpattern 很快,但当你有数千篇文章时,处理整个列表(例如,创建网站地图)可能会变得耗时。除非你每分钟发布一篇文章,否则缓存处理结果是个好主意。当然,当添加/删除内容/文章时,缓存块必须更新。大多数缓存插件在网站更新后访问相应页面时触发此更新 - 然而,这有两个不便之处

  1. 第一个访问者必须等待过期块被处理并重新缓存
  2. 每个网站修改,即使与缓存内容无关,也会导致缓存更新

这就是 etc_cache 旨在解决的问题。

安装

使用 Composer

$ composer require etc-plugins/etc_cache:*

或者从 GitHub 项目页面 下载插件最新版本,将代码粘贴到 Textpattern 插件管理面板中,安装并启用插件。访问 论坛主题 获取更多信息或报告插件的成功或失败。

要求

  • Textpattern 4.6.0 或更高版本。

标签

基本用法是

<txp:etc_cache id="heavycode">
    ...heavy code...
</txp:etc_cache>

属性

  • id="id name"
    此缓存项目的唯一标识符名称。
  • reset="value"
    请参阅以下重置信息。
  • time="value"
    请参阅以下时间信息。

代码将被处理并缓存,直到网站更新。在网站更新时,如果配置了插件,它将ping包含此块的 URL,触发缓存刷新。因此,缓存将始终保持最新,而不会惩罚网站访客。

要配置自动缓存更新,请访问扩展区域缓存管理面板并编辑每个块的 reset 字段。可能的值包括

  • (空):仅在过期时更新客户端,无论网站是否更新
  • 1:(默认) 如果过期或网站已更新,则更新客户端
  • 事件列表,如 article_posted, article_savedSQL LIKE 模式如 article%:当触发匹配事件时在服务器端更新。

% 因此意味着“在每次网站更新时自动更新”,但在客户端也作为 1

你可以更具体地指定缓存重置标准。例如,如果你需要块仅在文章 3 更新时重置,设置

reset: article_saved
filter: {"article_saved":{"ID":3}}

你还可以直接将 reset 属性传递给 etc_cache

<txp:etc_cache id="archive" reset="article%">
    ...heavy code building an articles archive...
</txp:etc_cache>

如果需要,可以向 etc_cache 传递 time 属性

<txp:etc_cache id="dailycode" time="+1 day">
    ...daily code...
</txp:etc_cache>

时间的一个正值(相对值)将指示缓存(即使是新的)在网站更新时必须重置。

绝对值如 time='<txp:modified format="%F %T" gmt="1" /> +1 month' 将表示“如果一个月内未修改则缓存它”。

负值将不会观察网站更新,例如 (-900 秒等于 15 分钟)

…feed 代码…

作者/致谢

Oleg Loukianov 编写。感谢 所有额外贡献者