aerni/dynamic-cache

此包已被弃用且不再维护。未建议替代包。

通过动态排除不应静态缓存的URL来增强Statamic的静态缓存

v1.1.2 2022-06-21 13:30 UTC

This package is auto-updated.

Last update: 2022-08-17 23:44:06 UTC


README

此插件已被存档,以支持备受期待的新标签nocache,该标签在Statamic v3.3.20中引入。

Statamic Packagist version Packagist Total Downloads License

动态缓存

如果您曾经使用过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配置中的excluderules数组。动态缓存足够智能,可以合并您的手动更改。

失效规则

如果配置设置为 rules => 'all',则此插件不会生成任何失效规则。

命令

您可以使用以下命令更新配置:

php artisan dynamic-cache:update

如果您的代码编辑器中的条目发生变化,而不是在控制面板中更改,这将非常有用。

Git 自动化

此插件支持 Statamic 的 Git 集成。只需将以下路径添加到您的 git.php 配置文件中的 paths 数组。同时,请确保插件存储路径被 git 跟踪。

'paths' => [
    config_path('statamic'),
    storage_path('statamic/addons/dynamic-cache'),
]