Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thathoff/kirby-clear-cloudflare-cache
Kirby 3 Plugin to Clear Cloudflare Page Cache
https://github.com/thathoff/kirby-clear-cloudflare-cache
cloudflare kirby3 kirby3-plugin
Last synced: 5 days ago
JSON representation
Kirby 3 Plugin to Clear Cloudflare Page Cache
- Host: GitHub
- URL: https://github.com/thathoff/kirby-clear-cloudflare-cache
- Owner: thathoff
- License: mit
- Created: 2019-03-01T18:54:15.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-14T09:09:56.000Z (over 2 years ago)
- Last Synced: 2024-11-28T03:08:32.933Z (about 1 month ago)
- Topics: cloudflare, kirby3, kirby3-plugin
- Language: PHP
- Size: 7.81 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Clear Cloudflare Cache Kirby Plugin
This Kirby plugin can automatically purge Cloudflare cached URLs.
## Installation
### Download
Download and copy this repository to `/site/plugins/clear-cloudflare-cache`.
### Git submodule
```
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
```## Setup
At a minimum, you must set the following options in your `config.php` file:
```php
'thathoff.clearcloudflarecache.cloudflareZoneID' => 'YOUR_CF_ZONE_ID',
'thathoff.clearcloudflarecache.cloudflareEmail' => 'YOUR_CF_EMAIL',
'thathoff.clearcloudflarecache.cloudflareAPIKey' => 'YOUR_CF_API_KEY',
```## Options
### `thathoff.clearcloudflarecache.cloudflareZoneID`
This must be set to your Cloudflare Zone ID (available in the Overview dashboard).### `thathoff.clearcloudflarecache.cloudflareEmail`
This must be set to the email address of your Cloudflare account.### `thathoff.clearcloudflarecache.cloudflareAPIKey`
This must be set to your Cloudflare API Key (available in the Profile page).### `thathoff.clearcloudflarecache.dependantUrlsForPage`
This must be a function that returns what URL(s) should be cleared after a page modification.By default, simply returns the URL of the page itself and potentially the previous URL (in the case of a slug change).
```php
function ($hook, $page, $oldPage = null) {
return $oldPage ? [$page->url(), $oldPage->url()] : $page->url();
}
```If you know that a change to one page affects other pages, you could include them as well. For example, the following would clear the Cloudflare cache for a modified page siblings (including the affected page) and parent pages.
```php
'thathoff.clearcloudflarecache.dependantUrlsForPage'=> function ($hook, $page, $oldPage = null) {
return $page->parents()->add($page->siblings(true));
},
```Or, a more elaborate example could include a sitemap and content representations:
```php
'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;
},
```The function may return:
- a single Page object
- a single URL string
- a Pages collection of Page objects
- an array of URL strings and/or Page objects
- null, empty array, or empty Pages collection (this will cause no cache to be cleared)Duplicate URLs will automatically be filtered out.
All URL strings must be absolute URLs (`https://www.example.com/blog`), not relative (`/blog`);
## License
MIT
## Credits
Maintained by [Markus Denhoff](https://github.com/thathoff),
originally developed by [Neil Daniels](https://github.com/neildaniels)
of [The Streamable](https://thestreamable.com)