配置概览(与其他信息类型的对比)
在 Drupal 8 中有几种信息类型:
- 内容 (Content)
这些信息旨在显示在您的网站上并由用户编辑:文章、基本页面、图片、文件等。
- 会话 (Session)
关于单个用户与站点交互的信息,例如他们在视图过滤器中的当前选择。这是临时的,并且只针对单个用户。
可能会频繁更改和/或无需用户干预的信息。例如:Cron 上次运行的时间、是否需要重建节点访问权限等。
关于您网站的信息,它不是内容,并且不会经常更改,例如您网站的名称、您定义的内容类型和视图等。
关于您网站的信息,但这些信息也存储在其他地方。缓存仅用于加快数据检索,它们从不存储规范数据。
您网站的只读信息,硬编码在 settings.php 文件中。
如何决定分类您的信息
并不总是很清楚应该将您的模块存储的信息分类为内容、状态还是配置。以下是一些指导:
- 配置 vs 状态:如果您的信息需要从开发服务器部署到生产服务器,那么它很可能是配置而不是状态。
- 配置 vs 内容:考虑网站构建者和网站编辑者的角色。如果“网站编辑者”角色需要编辑该信息,它可能是内容。如果只有“网站构建者”角色可以编辑该信息,那么它可能是配置。但这不是绝对规则。
- 配置 vs 内容:考虑数量。如果有大量项目,可能是内容。如果只有少量,可能是配置。
- 配置 vs 内容:配置通常定义“事物的类型”,例如内容类型、分类词汇表等。而这些类型下的每个“事物”则是内容的一部分:内容节点、分类术语等。
简单配置 vs 配置对象
在使用配置管理系统时,您首先需要决定的事情之一是要存储哪种类型的配置。
简单配置更容易实现,因此非常适合保存逻辑值、整数或简单文本字符串等基础配置。例如,模块中某个功能的启用/禁用开关,或系统模块中配置的网站名称。简单配置还包括模块正常运行所需的参数。例如,JavaScript 聚合必须启用或禁用。如果它不存在,系统模块将无法确定正确的操作顺序。简单配置只能依赖于提供它的模块。例如,system.site 仅依赖于 System 模块。
配置对象存储用户可以创建和删除的事物列表;无论是 0 个还是 100+ 个,您的代码都能正常运行。例如:图像样式、视图等。配置对象带有完整的 CRUD 钩子,像 Drupal 中的任何其他对象一样触发,因此非常适合其他模块可能需要使用或响应的配置。例如,Views 使用配置对象,使其在运行时触发钩子,从而允许其他模块向 Views 提供配置(视图)。配置对象可以有动态依赖关系。和简单配置一样,它们依赖于提供它们的模块。例如,views.view.frontpage 依赖于 Views 模块,但由于它列出了节点,它也依赖于 Node 模块。如果稍后更新为仅显示 Article 节点,它还会依赖于 Article 配置对象 (node.type.article),依此类推。