thestreamable / kirby-clear-cloudflare-cache
v1.2.0
2022-08-11 18:54 UTC
Requires
This package is auto-updated.
Last update: 2022-08-14 19:20:00 UTC
README
此 Kirby 插件可以自动清除 Cloudflare 缓存的 URL。
安装
下载
下载并将此存储库复制到 /site/plugins/clear-cloudflare-cache
。
Git 子模块
git submodule add https://github.com/thathoff/kirby-clear-cloudflare-cache.git site/plugins/clear-cloudflare-cache
Composer
composer require thathoff/kirby-clear-cloudflare-cache
设置
至少,您必须在您的 config.php
文件中设置以下选项
'thathoff.clearcloudflarecache.cloudflareZoneID' => 'YOUR_CF_ZONE_ID', 'thathoff.clearcloudflarecache.cloudflareEmail' => 'YOUR_CF_EMAIL', 'thathoff.clearcloudflarecache.cloudflareAPIKey' => 'YOUR_CF_API_KEY',
选项
thathoff.clearcloudflarecache.cloudflareZoneID
这必须设置为您的 Cloudflare 区域 ID(在概述仪表板上可用)。
thathoff.clearcloudflarecache.cloudflareEmail
这必须设置为您的 Cloudflare 账户的电子邮件地址。
thathoff.clearcloudflarecache.cloudflareAPIKey
这必须设置为您的 Cloudflare API 密钥(在个人资料页面上可用)。
thathoff.clearcloudflarecache.dependantUrlsForPage
这必须是一个函数,返回在页面修改后应清除哪些 URL。
默认情况下,简单地返回页面的 URL,以及潜在的先前 URL(在 slug 更改的情况下)。
function ($hook, $page, $oldPage = null) { return $oldPage ? [$page->url(), $oldPage->url()] : $page->url(); }
如果您知道对一个页面的更改会影响其他页面,您也可以包括它们。例如,以下将清除修改后的页面的兄弟页面(包括受影响的页面)和父页面的 Cloudflare 缓存。
'thathoff.clearcloudflarecache.dependantUrlsForPage'=> function ($hook, $page, $oldPage = null) { return $page->parents()->add($page->siblings(true)); },
或者,一个更复杂的例子可以包括站点地图和内容表示
'thathoff.clearcloudflarecache.dependantUrlsForPage'=> function ($hook, $page, $oldPage = null) { $urls = []; $urls[] = $page->url(); $urls[] = $page->url() . '.json'; if ($oldPage) { $urls[] = $oldPage->url(); $urls[] = $oldPage->url() . '.json'; } $urls[] = page('sitemap')->url(); $urls[] = page('sitemap')->url() . '.xml'; return $urls; },
函数可以返回
- 单个页面对象
- 单个 URL 字符串
- 页面集合的页面对象
- URL 字符串数组和/或页面对象数组
- null、空数组或空页面集合(这将导致不清除任何缓存)
重复的 URL 将自动被过滤掉。
所有 URL 字符串必须是绝对 URL(如 https://www.example.com/blog
),而不是相对 URL(如 /blog
);
许可证
MIT
鸣谢
由 Markus Denhoff 维护,最初由 Neil Daniels 开发,他是 The Streamable 的成员