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

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

预备工作