1.3 实验室和其他信息
总结
本节探讨了 Drupal 8 模块开发,学习了怎么使用新的 API 。
首先我们研究了一些基础知识:与 Drupal 7 对比讲解怎样开始一个 Drupal 8 模块(包括文件和目录结构)。
我们也看到了怎样定义路由,控制器,以及路由如何与控制器方法关联。
最后我们研究了怎样使用路由创建菜单。
下一课我们继续探讨 examples 模块,继续深入挖掘 Drupal 8 是如何工作的。
你现在应该理解:
- Drupal 8 实现了 OOP 编程。
- Symfony 是一个框架,帮助 Drupal 解决了重复性问题。
- 你应该理解什么是 YAML 文件,怎么实现它。
- modulename.info 已经被 modulename.info.yml 替代。
- hook_menu() 系统被分解为 modulename.routing.yml 和 modulename.links.menu.yml 等文件。
- 菜单链接也通过 YAML 配置文件实现了。
- 类能够在 Controller.php 文件内声明。
继续探索
如果你想继续探讨本课,试着做以下事情:
- 改变 page example,研究如何使用
hook_help
和modulename.permissions.yml
看怎样把菜单链接放在新的菜单下
走读 Symfony
能够回答以下问题:
- Drupal 8 的模块开发有何不同?
- 为何把
Symfony
作为 Drupal 的一部分? - 什么替换了 Drupal 7 中
hook_menu()
的page callback
函数? - 什么是自动加载?
完整步骤
- 切换到 Drupal 8 根目录下的 modules 目录
- 创建一个叫做 examples 的空目录
- 切换到 examples 目录
- 创建空目录 page_example,用于探讨在模块内怎样创建一个 page
- 切换到 page_example 目录
- 创建 page_example.info.yml 文件
- 粘贴例子代码到 page_example.info.yml 文件
- 创建
page_example.routing.yml
文件 - 粘贴例子代码到
page_example.routing.yml
文件 - 创建 PageExampleController.php 文件
- 粘贴例子代码到 PageExampleController.php 文件
- 创建 page_example.links.menu.yml 文件
- 粘贴例子代码到 page_example.links.menu.yml 文件
- 把整个模块移动到 modules/custom 下
- 激活此模块
- 重建缓存
- 访问
http://mysite.com/examples/page_example/simple
进行测试