用途:介绍 Drupal 缓存系统(Cache API)的核心概念与用法,帮助开发者为渲染数组和自定义数据正确添加缓存元数据,避免出现陈旧内容。
主要能力:
- 渲染数组缓存元数据:通过 #cache 键设置 tags、contexts、max-age,例如 tags 使用 node:{nid}、node_list,contexts 使用 user.permissions、url.query_args,max-age 使用 Cache::PERMANENT。
- 缓存标签:node:{nid} 在节点保存/删除时失效,node_list 在任意节点创建或删除时失效,user:{uid} 在用户保存时失效,taxonomy_term:{tid} 在术语保存时失效,config:{name} 在配置对象保存时失效。
- 缓存上下文:user.permissions 按用户权限变化(优先于 user),user.roles 按角色,url.path 按路径,url.query_args 按查询参数,languages 按当前语言。
- 读写缓存:使用 cacheBackend->get()、set()、delete(),set 可传 Cache::PERMANENT 或请求时间加秒数,并附带标签;用 Cache::invalidateTags() 使标签失效。
- 注入缓存服务:通过构造函数注入 CacheBackendInterface,并在 services.yml 中配置 arguments: ['@cache.default']。
- CacheableDependencyInterface:用 Cache::mergeTags() 合并已有标签与对象标签。
使用方式:在渲染数组的 #cache 中声明元数据;在服务中注入 cache.default 后读写缓存;用标签和上下文控制失效与变体。
适用场景:Drupal 模块与主题开发中需要缓存渲染输出、自定义数据或区块,并希望内容随节点、用户、配置等变化自动更新。
限制:资料未提供具体版本要求、性能调优参数、缓存后端配置细节及完整示例,暂未提供。