Answers:
以下说明允许创建一个空模块,对刚开始构建模块的任何人都非常有帮助。如果您在使第一个模块正常工作或出现在Drupal中时遇到麻烦,请确保已阅读以下所有说明。
一个project
至少必须
module-machine-name.info.yml
具有以下属性:
name:
易读的名称type:
类型,定义为module
。core:
8.x
在这种情况下,模块兼容的主要Drupal核心版本。module-machine-name.module
从Web根目录可以看出,Drupal在这些位置查找模块:
/modules/
sites/[example.com]/modules
sites/default/modules
profiles/[install-profile]/modules
从技术上讲,Drupal也在中寻找模块core/modules
,但是绝对不要在其中放置模块,因此不在上面的列表中。
具有机器名称的模块的示例模块结构helloworld
如下所示:
/modules/helloworld/helloworld.info.yml
/modules/helloworld/helloworld.module
请注意,信息和模块文件的名称与计算机名称完全相同,这一点很重要。
模块文件可能为空,但是信息文件必须包含一些最小值,Drupal才能将其识别为模块。对于我们的helloworld模块,它可能类似于:
name: 'Hello world module to demonstrate module building'
core: 8.x
type: module
如果您按照上述说明进行操作,则在此阶段您应该可以在Drupal站点中获得一个新模块,尽管它不会做任何事情。
一个模块必须至少具有
要由Drupal加载,它还必须定义与哪个内核版本兼容。
Drupal进一步在以下位置寻找模块:
sites/all/modules/
sites/[example.com]/modules
sites/default/modules
profiles/[install-profile]/modules
从技术上讲,Drupal也在中寻找模块modules
,但是绝对不要在其中放置模块,因此不在列表中。
具有机器名称的模块的示例模块结构helloworld
如下所示:
sites/all/modules/helloworld/helloworld.info
sites/all/modules/helloworld/helloworld.module
请注意,信息和模块文件的名称与计算机名称完全相同,这一点很重要。
模块文件可以为空,但是信息文件必须包含人类可读的模块名称以及该模块兼容的核心版本。
对于我们的helloworld模块,它可能类似于:
name = Hello world module to demonstrate module building
core = 7.x
如果您按照上述说明进行操作,则在此阶段您应该可以在Drupal站点中获得一个新模块,尽管它不会做任何事情。
drupal generate:module
呢?
对于Drupal 8,由于问题中提到了一个蓝图,所以我想提到Drupal Console项目。
安装完成后,就可以生成模块代码(以及其他类似自定义实体,插件的脚手架等)。
为了产生通过命令行的基本模块:drupal generate:module
。然后提示您进行一些基本信息收集,并在最后留下模块文件:
sites/default/...
只是说...