thoughtco / statamic-cache-tracker
此包的最新版本(0.9.2)没有可用的许可证信息。
0.9.2
2024-09-12 05:47 UTC
Requires
- php: ^8.1
- pixelfear/composer-dist-plugin: ^0.1.5
- statamic/cms: ^4.55 || ^5.0
Requires (Dev)
- laravel/pint: ^1.13
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^8.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.24
- phpunit/phpunit: ^10.0
README
Statamic Cache Tracker 会记录每个页面输出中使用的项目(条目、资产、术语等),当保存项目时,会清除这些页面的缓存(全部或部分)。
如何安装
从您的项目根目录运行以下命令
composer require thoughtco/statamic-cache-tracker
您也可以选择发布配置
php artisan vendor:publish --tag=statamic-cache-tracker-config
工作原理
该插件在大多数情况下应自动工作。它监听表单、导航和部分标签中的钩子,以及条目、术语、资产和全局变量的增强,以确定输出的内容。
然后,这些数据被添加到一个缓存存储中,用于确定在跟踪的项目保存或删除时应该失效哪些缓存数据。如果您想在其他事件上清除数据(例如,在创建条目时清除任何页面构建器元素),只需添加一个监听器并在 Tracker 门面上调用心 invalidate(例如,Tracker::invalidate(['partial:_partials/my_pagebuilder_block']
);
默认使用缓存,或者如果您已指定 static_cache
存储则使用该存储。在清除静态缓存时,这些数据将被清除。
中间件
自动缓存中间件将自动添加到您的 web
中间件堆栈。如果您想将其包含在其他堆栈中,只需添加
\Thoughtco\StatamicCacheTracker\Http\Middleware\CacheTracker::class
追踪门面
该插件附带一个用于与追踪器交互的门面: \Thoughtco\StatamicCacheTracker\Facades\Tracker
添加您自己的跟踪数据
如果您有自己的自定义跟踪数据,例如为您自己的标签之一,您可以在门面上注册它们。请注意,跟踪仅在生成响应时发生,因此尽可能使用增强钩子。
使用闭包
Tracker::addAdditionalTracker(function ($tracker, $next) { // run your logic, for example in an augmentation hook // then call: $tracker->addContentTag('your-tag-here'); return $next($tracker); });
使用可调用的类
class AdditionalTrackerClass { public function __invoke($tracker, $next) { $tracker->addContentTag('additional::tag'); } } Tracker::addAdditionalTracker(AdditionalTrackerClass::class);
派发事件
Thoughtco\StatamicCacheTracker\Events\TrackContentTags::dispatch(['additional::tag']);
使跟踪数据失效
要使包含您的跟踪数据的页面失效,请使用监听器或观察者,并调用
$tags = ['one', 'two', 'three']; Tracker::invalidate($tags);