Drupal 8 模块开发:基于 ConfigFormBase 创建配置表单

系统配置表单也是 Drupal 8 常用表单的一种,使用此表单可以用于定义和保存模块配置项。在 Drupal 8 中,模块配置信息不仅保存于数据库中,同时也与 YAML 文件保持同步,使得开发和部署更为方便。

配置迁移问题是 Drupal 7 及以前 Drupal 站点的重大短板,如今通过 Drupal 8 的配置管理,大大降低了配置迁移的难度,对新手尤其有帮助。详情可参考《浅谈 Drupal 配置迁移》、《Drupal 8 配置管理机制及新特性简介

Simple Configuration API(配置接口)通过 $config 对象与 YAML 文件进行交互,并处理 YAML 文件的 CRUD(Create/Read/Update/Delete)行为。通过使用 ::get(), ::set()::save() 等方法可以对配置进行存取操作,配置数据也将被保存于 {module}.settings.yml 文件中。

以 hello_world 模块为基础(详见《Drupal 8 模块开发入门教程》),按照以下步骤为其增加模块配置页面

1、打开 hello_world.info.yml,向其中加入以下代码,定义配置项路由

configure: hello_world.settings

2、打开 hello_world.routing.yml 文件,追加以下路由(与第1步相对应)

hello_world.settings:
  path: '/admin/config/development/hello'
  defaults:
    _title: 'Hello World Settings'
    _form: '\Drupal\hello_world\Form\HelloWorldSettingsForm'
  requirements:
    _permission: 'administer site configuration'

3、创建表单文件 hello_world/src/Form/HelloWorldSettingsForm.php 并写入以下代码定义表单并处理表单内容。

剩余50%内容付费后可查看

未完成付费阅读配置或配置有误

看完了?还不过瘾?点此向作者提问
打赏一下,鼓励Ta创作更多好内容!