Drupal8 新建第一个模块
参考:
https://www.drupal.org/developing/modules/8
https://www.drupal.org/node/1915030
https://www.drupal.org/node/318
Drupal 8 RC 发布了。由于D8使用了Symfony2的内核。与之前版本对比,模块的写法有很大的不同。
新建模块
下面的例子中写一个单独显示“hello world”页面的模块。
首先要给模块起一个唯一的机器名(machine name)
机器名必须满足:
1. 字母开头
2. 只能包含小写字母和下划线
3. 必须唯一,不能与其他模块,主题和配置文件(profile)重名
4. 不能是src, lib, vendor, assets, css, files, images, js, misc, templates, includes, fixtures, Drupal. 这些是保留关键字。
info.yml
在根目录的modules目录中先新建custom和contrib目录。
custom存放我们自己的写的模块,contrib里放从官网下的模块。当然不建这俩目录系统也能识别不过这是规范。然后我们在custom目录下新建"hello_world"目录。
然后新建hello_world.info.yml,在D7是.info文件。此文件记录模块的元信息。就是最基本的信息。
name 模块的名字,description 模块的描述干什么用的。package 属于哪个分组。如Core
属于D8内核模块。
type可以为module,theme或profile。
name: Hello World Module
description: Creates a page showing "Hello World".
package: Custom
type: module
version: 1.0
core: 8.x
composer.json 非必须
新建composer.json
{
"name": "drupal/example",
"description": "This is an example composer.json for example module.",
"type": "drupal-module",
"license": "GPL-2.0+"
}
添加控制器
在hello_world目录中新建/src/Controller/HelloController.php
<?php
/**
* @file
* Contains \Drupal\hello_world\Controller\HelloController.
*/ namespace Drupal\hello_world\Controller; use Drupal\Core\Controller\ControllerBase; class HelloController extends ControllerBase {
public function content() {
return array(
'#type' => 'markup',
'#markup' => t('Hello, World!'),
);
}
}
?>
返回这个模块目录下新建hello_world.routing.yml
hello_world.content:
path: '/hello'
defaults:
_controller: '\Drupal\hello_world\Controller\HelloController::content'
_title: 'Hello World'
requirements:
_permission: 'access content'
到此,这个模块算完整的写完,这时候打开地址/hello就会出现hello world的单独页面。
Drupal8 新建第一个模块的更多相关文章
- Java 9 揭秘(3. 创建你的第一个模块)
文 by / 林本托 Tips 做一个终身学习的人. 在这个章节中,主要介绍以下内容: 如何编写模块化的Java程序 如何编译模块化程序 如何将模块的项目打包成模块化的JAR文件 如何运行模块化程序 ...
- Drupal8开发教程:模块开发——创建新页面
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块 ...
- 如何编译linux第一个模块 hellomod.ko
Linux下的驱动程序也没有听上去的那么难实现,我们可以看一下helloworld这个例子就完全可以了解它的编写的方式! 我们还是先看一个这个例子,helloworld 1. [代码]hellowor ...
- idea新建maven多模块spring boot项目
1.新建一个maven多模块项目,比如这种结构: maven-demo |--demo-common |--demo-order |--demo-user 2.先新建一个maven项目,在maven项 ...
- 新建maven 父子模块项目
第一步: 第二步: 先创建个简单的空架结构作为父项目 第三步: 创建子项目 第四步: 切换显示不同的maven子项目显示方式 关于maven中的parent聚合一直都有没好好总结,固有这篇. ---- ...
- Django来敲门~第一部分【4. 创建第一个模块应用】
成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 ——老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问配 ...
- 【4】Django 创建第一个模块应用
大成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 --老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问 ...
- react实战系列 —— 起步(mockjs、第一个模块、docusaurus)
其他章节请看: react实战 系列 起步 本篇我们首先引入 mockjs ,然后进入 spug 系统,接着模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划 ...
- Nginx的第一个模块-HelloWorld
麻雀虽小,五脏俱全,小小的Hello World盛行于程序世界,就在于其代码虽短,但要真正运行起来,需要我们略通基本语法,稍懂编译运行环境,知晓操作过程,最后,还有一颗持之以恒,不怕折腾的心.前一阵子 ...
随机推荐
- 死磕salt系列-salt grains pillar 配置
grains 和 pillar 对比: Grains:存放静态数据,主要存储客户端的主机信息,重启grains会刷新. Pillar: 处理敏感数据, 处理差异性的文件. Grains数据系统 sal ...
- ethereumjs/merkle-patricia-tree-1-简介
https://github.com/ethereumjs/merkle-patricia-tree SYNOPSIS概要 This is an implementation of the modif ...
- Codeforce Round #554 Div.2 D - Neko and Aki's Prank
dp 找规律 我好菜啊好菜啊,完全没有思路. 在合法的括号序列中,左括号数一定大于等于右括号数的,所以我们可以先定义平衡度为左括号数-右括号数. 然后可以发现一个惊人的规律..就是在trie同一深度上 ...
- mixup: Beyond Empirical Risk Minimization
这篇论文MIT和FAIR的工作,主要是提出了一种mixup的方式.(感觉是一种产生hard sample的方法,是一种新的.更有效的数据增强.) 1 Introduction 大网络需要大数据,目前C ...
- LeetCode35.搜索插入位置 JavaScript
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- Java编写画图板程序细节-保存已画图形
没有Java编写画图板程序细节-保存已画图形 一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后 ...
- 19-3-14Python中函数的进阶
1.动态参数: def func(*args): #在形参位置*叫做聚合 print(args) #元组形式 func(1,2,3,4,5,6) def func(**kwargs): # 动态关键字 ...
- SQL分页过多时, 如何优化
问题: 我们经常会使用到分页操作,这里有个问题,在偏移量非常大的时候,它会导致MySQL扫描大量不需要的行然后再抛弃掉.如: , ; 上述这条SQL语句需要查询10020条记录然后只返回最后20条.前 ...
- Linux基础练习题(五)
1.创建一个10G分区,并格式为ext4文件系统: (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl: [root@bj-1-142 ~]# ...
- linux查看网卡地址和硬盘序列号
linux查看网卡地址命令:ifconfig linux查看硬盘序列号命令:hdparm -i /dev/sda