命名规范
只能包含小写字母与下划线。
机器名必须唯一,不能与模块、主题、或配置文件重命。
目录命名:但是为了保证代码的可读性,我们规定模块目录名必须和模块机器名一样。
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想让用户进行配置,应该使用插件系统。
服务提供相同的功能,并且是可交换的,用户只需要一个缓存(服务),从一种缓存换成另一种缓存没有任何功能上的差别。至于缓存中的方法的实现机制用户是不会管的。
插件通过一个公共的接口实现不同的行为。例如,图像变换插件,一般有缩放、裁剪、去色等。每个变换类型以相同的方式接受一个图像,完成转换,返回转换后的图像。当然,每个变换的效果是不同的。