Drupal Caching 是 Drupal 工作流技能集中的缓存专题,面向 Drupal 10/11 的缓存实现与性能优化。
用途方面,它规定渲染数组始终要带缓存元数据,不应返回没有 #cache 键的渲染数组,并对每个渲染数组检查缓存标签、缓存上下文与 max-age 是否正确。
主要能力包括:缓存元数据(渲染数组)的写法,如 keys、contexts、tags、max-age 示例;缓存上下文清单(user、user.roles、user.permissions、url、url.path、url.query_args、languages、theme、session)及各自的变化依据与适用场景;缓存标签用法,包括实体标签如 node:42、node_list、taxonomy_term:5、config:system.site 及自定义标签;CacheableMetadata 面向对象 API,用于合并多来源缓存元数据并 applyTo 到渲染数组,也可把访问结果作为可缓存依赖加入;lazy builder 用于在可缓存页面内渲染随用户变化的片段,通过 #lazy_builder 指定服务方法与仅限标量的参数,并需实现返回渲染数组的 build() 方法;缓存失效方面,要求在服务中注入 CacheTagsInvalidatorInterface,而不是使用 \Drupal::service() 调用;缓存 bin 用途表(default、render、page、dynamic_page_cache、discovery、data、config、menu);外部缓存后端中 Redis 的 settings.php 配置项,以及 Varnish 所需的 Cache-Control 与 Surrogate-Control 响应头写法。
使用方式以代码示例呈现,涵盖渲染数组缓存声明、CacheableMetadata 构建与合并、lazy builder 注册、标签失效调用与后端配置。适用场景为 Drupal 模块开发中的缓存实现、页面与渲染性能优化、多用户或多语言内容差异化缓存,以及引入 Redis、Varnish 等外部缓存层。
限制方面,资料未提供安装命令、版本兼容细节、价格或效果指标;示例参数与配置需结合项目实际情况核对,文中未涉及的扩展能力暂未提供。