2.3 实验室和其他信息
总结
本课我们继续探讨了 Drupal 8 模块开发的两个新主题: 区块和表单。
已经知道怎么创建区块,也学习了通过实现 FormBase 类创建简单的表单。
- Drupal 8 中的区块现在是可重用的插件。
- 类开始要定义名字空间。
- 文件能够包含核心或者其他资源的类。
- 注释中包含了注解,用于表征类的元数据。
完整步骤
- 切换到 Examples 模块
- 创建新的模块目录 block_example
- 切换到 block_example 目录
- 创建 block_example.info.yml 文件
- 粘贴例子代码到 block_example.info.yml 文件
- 创建 src/Plugin/Block 目录
- 切换到 src/Plugin/Block
- 创建 ExampleEmptyBlock.php 文件
- 粘贴例子代码到 ExampleEmptyBlock.php 文件
- 激活模块
- 清空缓存
- 去 /admin/structure/block 查看新定义的块
- 添加块到某个区域,查看显示效果
- 创建 ExampleConfigurableTextBlock.php 文件
- 粘贴例子代码到 ExampleConfigurableTextBlock.php
- 清空缓存
- 测试配置表单
- 在 page_example 下创建 src/Form 目录
- 切换到 src/Form 目录
- 创建 PageExampleForm.php 文件
- 粘贴例子代码到 PageExampleForm.php
- 编辑 page_example.routing.yml 文件添加路由
- 清空缓存
- 测试 http://mysite.com/examples/page_example/form
附加活动
这些额外的练习可以扩充你的知识,加深对本课概念的理解。
- 创建一个显示图片广告的区块
- 创建表单区块或页面,向表单中设置的地址发信。
- 利用区块插件创建自己的实体。
- 研究下为啥有些开发者抵制使用注解。
其他有用的链接
- Form API Reference
- Drupal 8 Deep Dive: Plug-in System
- Drupal 8: PHP Annotations
- Unravelling the Drupal 8 Plugin System
- An Overview of the Drupal 8 Plugin System (DrupalCon Amsterdam 2014)
- Preparing for Drupal 8 Development – Blocks, Forms, and Pages
- Dynamically define blocks in Drupal 8 with derivatives
- A Look Inside Drupal 8’s Block Plugin API
- The Block System is Finally Useful in Drupal 8
- SCOTCH initiative homepage
- Blocks & Layouts (SCOTCH) Post-Feature Freeze Overview
- Block API in Drupal 8
之后的教程会学习到配置表单、服务容器(service container)、依赖注入(dependency injection)以及他们在 Drupal 8 中是如何工作的。