aerni / dynamic-cache
通过动态排除不应静态缓存的URL来增强Statamic的静态缓存
Requires
- php: ^7.4|^8.0
- spatie/laravel-ray: ^1.29
- statamic/cms: ^3.0
- stillat/proteus: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.19
- nunomaduro/collision: ^5.10
- orchestra/testbench: ^6.24
- phpunit/phpunit: ^9.5
README
此插件已被存档,以支持备受期待的新标签nocache,该标签在Statamic v3.3.20中引入。
动态缓存
如果您曾经使用过Statamic的静态缓存并使用full
策略,您知道它与表单和动态列表(如sort="random"
)不兼容。这就是动态缓存的用武之地。它根据您条目内容中的布尔值动态更新您的static_caching.php
配置文件中的exclude
和无效化rules
数组。
对于基于Replicator和 Bard的复杂页面构建网站,动态缓存是救命稻草。您的页面构建器可能有成百上千个组件,但只有一个是需要动态功能的。没有这个插件,您将无法使用完整的静态缓存,因为您永远不会知道哪个页面实际上包含了一个不适用于静态缓存的组件。
特性
- 将条目的URL添加到静态缓存的
exclude
数组中 - 填充无效化
rules
数组 - 在您保存或删除条目或更改集合结构时更新配置
- Artisan命令可手动触发配置更新
注意:此插件目前仅支持集合条目。
安装
使用Composer安装插件
composer require aerni/dynamic-cache
发布包的配置
php please vendor:publish --tag=dynamic-cache-config
以下配置将被发布到config/dynamic-cache.php
。
return [ /* |-------------------------------------------------------------------------- | Field Handle |-------------------------------------------------------------------------- | | Define the name of the field handle you would like to use. | Default: 'exclude_from_static_cache' | */ 'handle' => 'exclude_from_static_cache', ];
配置
您可以更改用于检查条目是否应排除在静态缓存之外的字段的handle。默认值为exclude_from_static_cache
。
基本用法
动态缓存将在您的条目中查找exclude_from_static_cache: true
。将此值添加到内容中的最佳方法是创建一个包含Hidden Fieldtype的字段集,并将其添加到必要的蓝图中。
如果您使用页面构建器,我建议将字段集添加到每个需要动态功能的Replicator或 Bard集。这样,只有在存在相关组件的情况下,条目才会被排除在静态缓存之外。如果没有,条目将被静态缓存。
带有Hidden Fieldtype的字段集
title: 'Exclude From Static Cache' fields: - handle: exclude_from_static_cache field: display: 'Exclude From Static Cache' type: hidden icon: hidden listable: hidden replicator_preview: false default: true
或者,您还可以使用Toggle Fieldtype手动打开和关闭静态缓存。请注意,这样做会削弱此插件试图解决的问题...
带有Toggle Fieldtype的字段集
title: 'Exclude From Static Cache' fields: - handle: exclude_from_static_cache field: display: 'Exclude From Static Cache' type: toggle icon: toggle listable: hidden
手动配置更改
您有权手动更改static_caching.php
配置中的exclude
和rules
数组。动态缓存足够智能,可以合并您的手动更改。
失效规则
如果配置设置为 rules => 'all'
,则此插件不会生成任何失效规则。
命令
您可以使用以下命令更新配置:
php artisan dynamic-cache:update
如果您的代码编辑器中的条目发生变化,而不是在控制面板中更改,这将非常有用。
Git 自动化
此插件支持 Statamic 的 Git 集成。只需将以下路径添加到您的 git.php
配置文件中的 paths
数组。同时,请确保插件存储路径被 git 跟踪。
'paths' => [ config_path('statamic'), storage_path('statamic/addons/dynamic-cache'), ]