Drupal8开发教程:模块开发——创建新页面

  之前我们已经通过《Drupal8开发教程:认识.info.yml文件》对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面。

  在 Drupal 7 中,通过模块添加新页面非常简单,使用 hook_menu 定义路径及回调函数返回要显示的结果即可。但 Drupal 8 却要麻烦很多,虽然也是定义路径,然后关联用于显示内容的函数,但却要在两个文件中分开进行。而且 Controller 文件还有目录结构要求,这些变化都需要慢慢来适应了。

  除了上文中定义的 hello_world.info.yml 文件外,还需要向模块目录下添加 hello_world.routing.yml 及 src/Controller/HelloWorldController.php 两个文件。

  hello_world.routing.yml 文件用来定义需要添加的路径、页面标题、回调函数及相关权限,作用与之前 Drupal 版本中的 hook_menu() 作用相同。

  以下是 hello_world.routing.yml 文件的内容,每个关键词语义都很清楚,就不多解释了:

hello_world.content:
  path: ‘/hello‘
  defaults:
    _controller: ‘\Drupal\hello_world\Controller\HelloWorldController::content‘
    _title: ‘Hello World‘
  requirements:
    _permission: ‘access content‘

  上述代码中使用的 controller 还没有定义,接下来便再添加 HelloWorldController.php 文件,需要注意其完整的目录结构为 src/Controller/HelloWorldController.php

<?php
/**
 * @file
 * Contains \Drupal\hello_world\Controller\HelloWorldController.
 */

namespace Drupal\hello_world\Controller;

use Drupal\Core\Controller\ControllerBase;

class HelloWorldController extends ControllerBase {
  public function content() {
    return array(
      ‘#type‘ => ‘markup‘,
      ‘#markup‘ => $this->t(‘Hello, World!‘)
    );
  }
}

  当完成 hello_world.info.yml, hello_world.routing.yml 和 HelloWorldController.php 三个文件后,进入到模块管理页面,启用 Hello World 模块后,便可以通过访问 /hello 路径访问新添加的 Hello World 页面了。如果在之前已经启用了模块,记得清空一下缓存。

原文标题:Drupal8开发教程:模块开发——创建新页面

原文地址:http://drupalct.org/drupal-development/add-new-page-with-module-development.html

时间: 2024-12-25 09:52:02

Drupal8开发教程:模块开发——创建新页面的相关文章

[精]Odoo 8.0深入浅出开发教程-模块开发基础

参考资料点击这里. 构建Odoo模块 模块组成 业务对象 业务对象声明为Python类, 由Odoo自动载入. 数据文件 XML或CSV文件格式, 在其中声明了元数据(视图或工作流).配置数据(模块参数).演示数据等. Web控制器 处理Web浏览器发来的requests. 静态web数据 Web用到的图像, CSS或JavaScript文件. 模块结构 一个Odoo模块也是一个Python模块, 存放在一个目录中, 包含一个__init__.py文件, 用于导入其他Python模块. from

android教程:Android创建新项目及开发

android教程:Android创建新项目及开发,这篇文章是比较简单的知识,比较适合才入门的同学们看,当然,大家也可以来看看我总结的,给小编一点意见,说说你们的看法! 创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了. 首先, 看一下要创建Hello, World程序从高级层面上有哪些步骤: 1.通过 File -> New -> Project 菜单,建立新项目Android Project 2.填写新项目各种参数

[转]软件开发规范—模块开发卷宗(GB8567——88)

做软件开发是有那么一套国准可参照的,当然就是那些文档了,这里列出一下所有软件开发的规范文档: 操作手册 用户手册 软件质量保证计划 软件需求说明书 概要设计说明书 开发进度月报 测试计划文档 测试分析报告 数据库设计说明书 软件配置管理计划 模块开发卷宗 详细设计说明书 项目开发总结报告 我现在再做的东西是数据库设计说明书,两天前才写玩模块开发卷宗,那时候在网上找了一些事例不是很符合规范,而完全对着模块开发卷宗的模板去写真不知道里面要写什么,因为里面有太多概念性的东西都看不懂,在这里贴以下广佛都

Symfony2框架实战教程——第二天:创建新页面

在此之前,我们先明确一下我们要实现什么功能,在开始开展具体的代码工作前先明确自己的目标是一个节省时间的好习惯.我们的需求如下: 用户可以使用新浪微博或者QQ帐号登录. 用户可以投稿,需要填写的内容为“标题”+“正文” 用户可以对某篇文章进行评论 在以上的基础上,我们继续具体化我们的需求: 用户的内容都将使用markdown格式 评论内容不可超过140个字 新闻内容不可超过5000个字 标题内容不可超过70个字 好,到这里我们的需求已经很明确了,虽然简单得似乎不可能会有人用的样子- 修改配置文件

【iOS开发-50】利用创建新的类实现代码封装,从而不知不觉实践一个简单的MVC实验

接上次案例谈代码封装.上次案例见:[iOS开发-48]九宫格布局案例:自动布局.字典转模型运用.id和instancetype区别.xib重复视图运用及与nib关系 代码封装的原则是:要保证视图控制器尽量少的接触到其他对象的属性,也就是说,尽量把数据或者属性封装到一个类里面,然后利用类或者对象的方法来调用或者设置数据.而是赤裸裸地把属性都写在视图控制器中.核心作用在于:减少视图控制器的代码量,把数据和属性的处理封装起来,这样也便于其他视图控制器的使用. 要做到的结果就是如下(我们要根据数组里面的

DuiVision开发教程(9)-动态创建控件

基于DuiVision的界面程序大部分情况下都是通过xml事先定义好界面的,但有时候需要通过代码来动态创建控件,可以参考下面的动态创建控件的例子: CDuiButton* pToolBtn = static_cast<CDuiButton*>(DuiSystem::CreateControlByName(L"button", m_pDlg->GetSafeHwnd(), m_pDuiObject)); if(pToolBtn) { ((CControlBase*)m_

星辉信息科技Odoo开发教程10-odoo开发环境准备

在更深入了解 Odoo 开发之前,我们应配置好开发环境并学习相关的基础管理任务.本文中,我们将学习创建 Odoo 应用所需用到的工具和环境配置.这里采用 Ubuntu 系统来作为开发服务器实例的主机,可以是云服务器.本地服务器或者 PC 上的虚拟机.本文主要内容有:? 配置主机,可以是 Ubuntu 系统或 PC 机上的 Linux 子系统? 使用源码安装 Odoo,包括数据库和系统依赖的安装? 管理 Odoo 数据库(创建.删除和拷贝)? 配置 Odoo 服务器选项? 查找并安装社区插件? 使

安卓开发教程 - 搭建开发环境

首先下载两个软件包 1.下载SDK:http://dl.google.com/android/installer_r24.0.2-windows.exe 如果浏览器不能访问, 将上面的地址复制到 迅雷上面(新建下载任务)即可下载,大概80多M的样子. 2.JDK的下载:http://docs.oracle.com/javase/8/docs/ 下载你所使用系统对应的JDK包 首先安装JDK 然后安装SDK 启动SDk Manager 在最右下角显示log可以看到: Fetching https:

最简单的SAP云平台开发教程 - 如何开发UI5应用并运行在SAP云平台上

选择Services Catalog,根据关键字搜索到WebIDE服务,点击超链接打开WebIDE: 进入workspace,选择Git->Clone Repository: 从我的github clone:https://github.com/i042416/jerrylist clone完毕之后选择Run->Run index.html, 检查clone是否成功. 正常情况下应该看到这个UI5应用: 将该应用从git的workspace部署到SAP cloud platform上: App