原文地址:
https://docs.acquia.com/article/lesson-33-labs-and-other-information
总结
本课我们研究了配置和配置表单。也了解了 ConfigFormBase 。现在你可以尝试在多个站点间导入导出配置操作。
总体来讲,你现在应该看到 Drupal 8 配置是如何强大,以及对比 Drupal 7 在部署方面的改善。
我们学习了模块级别的配置实现:
- 配置管理代替了 Drupal 7 大杂烩的功能集合,为模块存储配置数据提供了一个核心位置。
- YAML 文件作为了把配置记录在代码中的统一实现标准。
- 配置表单是把配置数据存储到数据库和文件系统的特定使用形式。
- 一个配置对象(Config Object)是一个配置的实例化。
完整步骤
- 切换到 Examples 根目录
- 创建空目录 configform_example
- 切换到 configform_example 目录
- 创建 configform_example.info.yml 文件
- 粘贴例子代码到 configform_example.info.yml 文件
- 创建 configform_example.routing.yml 文件
- 粘贴例子代码到 configform_example.routing.yml 文件
- 创建空目录 src
- 切换到 src
- 创建空目录 Form
- 切换到 Form 目录
- 创建 ConfigFormExampleConfigForm.php 文件
- 粘贴例子代码到 ConfigFormExampleConfigForm.php 文件
- 切换回 configform_example 目录,创建 configform_example.links.menu.yml 文件
- 粘贴例子代码到 configform_example.links.menu.yml 文件
- 替换 ConfigFormExampleConfigForm.php 文件中的 FormBase 为 ConfigFormBase
- 创建空目录 config/install
- 在 config/install 目录下创建 configform_example.settings.yml 文件
- 改变 buildForm() 方法
- 改变 getFormId() 方法
- 变更 submit 处理器
- 激活这个模块
- 重建缓存
- 测试 http://mysite.com/examples/configform_example/simple
你会看到我们新加的配置项。
额外问题
为了加深理解,你可以研究下以下问题:
- Drupal 7 中配置是怎么工作的?
- 给出三个理由,为什么把配置功能集中的一个系统内比较好?
- 把例子代码改下,在配置系统内保存两个值。
- 了解更多 schemas 知识。
实用链接
- Drupal 8 Deep Dive: Plug-in System - Acquia webinar
- Unravelling the Drupal 8 Plugin System - Drupalize.me tutorial