handmadeweb/statamic-cloudflare

2.0.0 2023-05-14 02:52 UTC

This package is auto-updated.

Last update: 2024-09-14 05:29:07 UTC


README

MIT Licensed

Statamic的Cloudflare集成,支持CLI、静态缓存集成和控制面板集成。

灵感来源于 sebdesign/artisan-cloudflare

要求

  • Statamic 4.0.0 或更高版本

安装

您可以通过composer安装此包

composer require handmadeweb/statamic-cloudflare

使用发布命令将包配置复制到您的本地配置

php artisan vendor:publish --provider="HandmadeWeb\StatamicCloudflare\ServiceProvider"

然后,将您的Cloudflare详细信息添加到您的 .env 文件中。

CLOUDFLARE_KEY=
CLOUDFLARE_EMAIL=

或者

CLOUDFLARE_TOKEN=

请注意,如果两者都设置了,将使用 CLOUDFLARE_KEY 而不是 CLOUDFLARE_TOKEN。KEY 是具有所有可能权限的全局API密钥,而TOKEN是生成的具有特定权限启用/禁用的API密钥/TOKEN。

并配置您的 zones,如果您只需要指定单个区域,则可以将其添加到您的 .env

CLOUDFLARE_ZONE_DOMAIN=
CLOUDFLARE_ZONE_ID=

否则,您可以在 statamic-cloudflare.php 中指定多个区域

    /*
     * Array of zones.
     *
     * Each zone must have its domain as the key. The value should be your zoneId.
     *
     * you can find your zoneId under 'Account Home > site > Api'.
     *
     * E.g.
     *
     * 'example.com' => '023e105f4ecef8ad9ca31a8372d0c353'
     */
    'zones' => [
        // env('CLOUDFLARE_ZONE_DOMAIN', null) => env('CLOUDFLARE_ZONE_ID', null),
    ],

默认情况下,所有清除操作(除CLI命令外)都将使用您的默认队列排队。

这可以在配置中更改。

    /*
     * Should purges be processed in a queue?
     * CLI commands will always run on request.
     */
    'queued' => true,

用法

CLI

您可以通过以下命令清除所有内容。

php artisan cloudflare:cache:purge:everything
php please cloudflare:cache:purge:everything

静态缓存

如果您想将 statamic-cloudflare 用作静态缓存策略,那么您需要手动在 App\Providers\AppServiceProvider 类的register方法中注册cacher。

/**
 * Register any application services.
 *
 * @return void
 */
public function register()
{
    \HandmadeWeb\StatamicCloudflare\Cloudflare::registerCacher();
}

然后更新您的 static_cache 配置。

'strategies' => [

    'half' => [
        'driver' => 'application',
        'expiry' => null,
    ],

    'full' => [
        'driver' => 'file',
        'path' => public_path('static'),
        'lock_hold_length' => 0,
    ],

    'cloudflare' => [
        'driver' => 'cloudflare',
        'strategy' => 'null',
    ],
],

然后更新配置顶部的 static_cache 策略为

'strategy' => 'cloudflare',

目前,Cloudflare集成仅用于清除。如果您想结合使用另一个缓存策略,那么您可以自由这样做。

这可以通过更新 cloudflare 策略中的 strategy 部分来完成,以下是一个示例,我们将使用 half measure 来缓存应用程序

'cloudflare' => [
    'driver' => 'cloudflare',
    'strategy' => 'half',
],

理论上,您应该能够在这里使用任何缓存策略,例如 full measure 或任何其他第一方或第三方策略,statamic-cloudfare 将简单地将请求传递到定义的策略,并将挂钩到清除操作以清除Cloudflare中的页面。

控制面板

事件

statamic-cloudflare 将监听 Statamic\Events\EntrySavedStatamic\Events\EntryDeletedStatamic\Events\TermSavedStatamic\Events\TermDeleted 事件,并将触发对URL的清除。如果您已将 static cache 配置为使用 cloudflare 驱动的策略,则这些事件将被忽略,因为驱动程序将处理所需的清除操作。

工具

statamic-cloudflare 将为您的Statamic CP添加一个工具。

路由: /cp/utilities/cloudflare

这将提供给 Super Users 以及拥有 Cloudflare Manager 权限的用户。

您可以从这里快速清除所有内容。

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING获取详细信息。

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。