handmadeweb / statamic-cloudflare
Requires
- php: ^8.0
- cloudflare/sdk: ^1.2
- statamic/cms: ^4.0
Requires (Dev)
- orchestra/testbench: ^4.0||^5.0||^6.0
README
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\EntrySaved
、Statamic\Events\EntryDeleted
、Statamic\Events\TermSaved
和 Statamic\Events\TermDeleted
事件,并将触发对URL的清除。如果您已将 static cache
配置为使用 cloudflare
驱动的策略,则这些事件将被忽略,因为驱动程序将处理所需的清除操作。
工具
statamic-cloudflare
将为您的Statamic CP添加一个工具。
路由: /cp/utilities/cloudflare
这将提供给 Super Users
以及拥有 Cloudflare Manager
权限的用户。
您可以从这里快速清除所有内容。
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING获取详细信息。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。