跳转到主要内容
laoxue 提交于 7 September 2016
由于Drupal 8 引入了symfony 2框架,实现了真正的面向对象的编程,相对于Drupal 7 来说,是一次颠覆性的革命。Drupal 8 通过annotation依赖注入和yml的配置管理,使开发工作既规范又灵活。Drupal 8内核的插件,为开发者提供了更加便利的应用实现途径。本文介绍Drupal 8 模块开发的入门知识,为初学者学习Drupal 8 模块开发提供最基本的感性认识,起到一个“抛砖引玉”的作用。 从Drupal 8 开始,通过Drupal Console 工具可以快速规范地自动生成模块和主题开发的目录、文件以及基本的代码。这里为了加深对模块开发的目录结构、文件配置、代码编写的规范的理解,我们还是介绍采取人工方式来开发模块的基本方法。

1、    为模块命名

  • 与Drupal 7 一样,我们需要给模块起一个机读名称。本例模块名为“my_module”。

2、    创建模块文件夹

  • 创建 /modules/custom/my_module文件夹,文件夹名称与模块名称一致。

3、    创建 .info.yml文件

  • 在模块文件夹根目录创建my_module.info.yml文件,文件的代码如下:

4、    创建 .module文件

  • 在模块文件夹根目录创建my_module.module文件。在Drupal 7 中这个文件是必须的,在Drupal 8 中,这个文件是可选的。我们在这里让它内容为空。

5、    创建 src 目录

  • 在模块文件夹根目录创建 src 目录,用来存放控制器、插件、表单、模板和测试等文件。

6、    创建基本的控制器

控制器是典型的MVC应用中的Controller。

  • 在src目录下创建一个 Controller 文件夹。
  • 在Controller目录下创建一个名为MyController.php的控制器文件。
  • MyController.php 文件代码如下:

7、    创建路由配置文件

  • 在模块文件夹根目录创建my_module.routing.yml文件,文件代码如下:

8、    查看结果

  • 保存后清空缓存。
  • 在“管理>扩展”页面,勾选安装My_module模块。

  • 在地址栏输入…/my_module,应该可以看到如下页面内容:

9、    创建菜单链接

我们可以将模块路由添加到管理菜单中。

  • 在模块文件夹根目录创建my_module.links.menu.yml文件,文件代码如下:

  • 保存后清空缓存。
  • 在“管理>配置>开发”页面,可以看到如下选项:

10、 创建自定义区块

Drupal 8 提供了插件机制,我们可以很方便地创建一个自定义区块。

  • 在src目录下创建一个 Plugin文件夹。
  • 然后在Plugin目录下创建一个Block文件夹。
  • 在Block目录下创建一个名为MyBlock.php的文件。
  • MyBlock.php的文件代码如下:

11、 放置区块

  • 通过“管理>结构>区块布局”页面,将我们创建的区块放置到左边栏。

12、 展示结果

  • 自定义区块的结果如下图:

13、 自定义模块目录结构

到这里我们完成了自定义模块开发的基本过程。

  • 自定义模块的目录结构如下:

 

标签
Drupal 版本