创建字段类型、字段格式器、字段编辑器

由 admin 提交于 周三, 06/07/2023 - 15:21

创建字段类型、字段格式器、字段编辑器

在第一章中,我们学习过如何通过 Drupal 后台管理界面创建新的 内容类型(ContentType)。 创建 内容类型(ContentType) 的主要工作是向其添加字段定义,我们通过一系列的表单, 选择 字段类型,填写 字段名称和说明,填写 字段设置,还可以在为字段选择 编辑控件 和 格式化器。

Drupal Core 自带了大量的 字段类型,每个类型都提供了至少一个以上的可用 编辑控件 和 格式化器。 在社区中,也有大量的模块提供了一些 字段类型,这些字段类型本质上与 Drupal Core 是使用同样的 API 来开发的, 当我们找不到适好的字段类型时,可以使用这些 API 来开发自己需要的字段类型。

学习字段类型的开发,一方面,可以了解字段的底层运行原理,使得开发工作更得心应手,另一方面, 可以开发完全适用于特定项目需求的字段类型,使开发者能够更彻底地控制 Drupal 工程的开发的细节。

概念

Drupal 中的 字段 不等同于 数据库表字段(列)。

  • 字段:一个具体的实体对象的属性,一个实体包含多个字段,字段 指的是一个具体的数据属性实例。
  • 字段值:字段的值,字段的值是一个 FieldItemList 对象实例,该对象是 \Drupal\Core\TypedData\ListInterface Typed Data 列表类型的一个实现。 字段值是多值的,字段值的索引被称为 delta。即使字段被限制为 1 个值,字段的值仍然会是 一个 FieldItemList 对象实例, 其中只包含一个值项。
  • 字段项:字段值中的一个值项,它是一个 ComplexData 类型的数据对象,包含一个或多个属性。
  • 字段项类型(字段类型):通常说的 字段类型 指的是 字段项的类型,我们在自定义字段类型时,实际上是在创建一个字段项的类型。
  • 字段属性:字段属性是指的是字段项的属性,它们是 Primitive Typed Data 数据对象,它们一般会被持久化为数据库表的字段(列)值。

可同时参考 了解实体和字段

字段类型、字段格式器、字段编辑器 使用了 Drupal Plugin API

预备工作