命名规范

只能包含小写字母与下划线

机器名必须唯一,不能与模块、主题、或配置文件重命。

目录命名:但是为了保证代码的可读性,我们规定模块目录名必须和模块机器名一样

PSR-4标准的目录结构:

_controller:

‘\Drupal\hello_world\Controller\HelloController::content’

对应的文件目录在:

/src/Controller/HelloController.php

Plugin :

namespace Drupal\hello_world\Plugin\Block;

对应的文件目录在: src\Plugin\Block\ExampleBlock.php

注解规范:

id: 插件的机器名,也是唯一ID

必须使用双引号,不要使用单引号,单引号会抛出异常

常用的数据类型: String: 字符串类型必须使用双引号例如”foo”。如果字符串中包含双引号则需再使用一对双引号以转义,如 “The “”On”” Value”。

Numbers: 不能使用引号例如21,使用引号将被解析成字符串。

Booleans: 不能使用引号例如TRUE或者FALSE,使用引号将被解析成字符串。

Lists: 列表数组,如base = { “node”, “foo”, } 请注意列表中的最后一个元素后的逗号,它有助于防止解析错误。

Maps: 数据映射,形如数组。如: edit = { “editor” = “direct”, }

目录

/modules/custom/hello_world

/sites/all/modules/custom/hello_world

插件和服务

如果提供了一个UI想让用户进行配置,应该使用插件系统。

服务提供相同的功能,并且是可交换的,用户只需要一个缓存(服务),从一种缓存换成另一种缓存没有任何功能上的差别。至于缓存中的方法的实现机制用户是不会管的。

插件通过一个公共的接口实现不同的行为。例如,图像变换插件,一般有缩放、裁剪、去色等。每个变换类型以相同的方式接受一个图像,完成转换,返回转换后的图像。当然,每个变换的效果是不同的。