handmadeweb / statamic-multi-cacher
dev-main
2021-07-27 22:00 UTC
Requires
- php: ^7.3 || ^8.0
- statamic/cms: ^3.1
Requires (Dev)
- orchestra/testbench: ^4.0 || ^5.0 || ^6.0
This package is auto-updated.
Last update: 2024-09-28 05:15:57 UTC
README
Statamic Multi Cacher 是一种缓存策略“重定向器”,可以根据您自己的逻辑提供不同的缓存策略。
一个例子可能是绕过/禁用超级管理员的缓存,并将 half 策略提供给其他所有人。
这是测试版
请注意,目前不建议在生产环境中使用此版本。
需求
- Statamic 3.1 或更高版本
安装
您可以通过 composer 安装此包
composer require handmadeweb/statamic-multi-cacher
使用方法
首先将策略添加到您的 static_cache 配置文件中
'strategies' => [ 'half' => [ 'driver' => 'application', 'expiry' => null, ], 'full' => [ 'driver' => 'file', 'path' => public_path('static'), 'lock_hold_length' => 0, ], 'multi' => [ 'driver' => 'multi-cacher', ], ],
然后指定您希望 multi-cacher 可用的策略名称
'multi' => [ 'driver' => 'multi-cacher', 'strategies' => [ 'half', 'full', ], ],
然后更新配置文件顶部的 static_cache 策略
'strategy' => 'multi',
需要注意的是,如果省略策略或为空,则 multi-cacher 策略将默认为 null。 null 策略始终可供选择,因此您不需要将其添加到策略部分。
如果您没有覆盖 CacheSelector(即 \HandmadeWeb\StatamicMultiCacher\CacheSelector),则第一个策略将被始终使用。在上面的例子中,这将使用 half。
可以通过如下扩展 CacheSelector 类来覆盖
<?php namespace App\Cachers; use Illuminate\Support\Facades\Auth; use HandmadeWeb\StatamicMultiCacher\CacheSelector; class MyMultiCacher extends CacheSelector { public function selectCacher() { // Disable cache for super users. if(Auth::check() && Auth::user()->isSuper()){ return $this->multiCacher()->cachers()->get('null'); } // Cache everyone else with the half strategy. return $this->multiCacher()->cachers()->get('half'); } }
然后更新您的 static_cache 配置如下
'multi' => [ 'driver' => 'multi-cacher', 'selector' => \App\Cachers\MyMultiCacher::class, 'strategies' => [ 'half', ], ],
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件