• 欢迎访问趣尚博客、分享互联网、软件、编程、创业、英语、VPS 推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您喜欢我的博客,那么请使用Ctrl+D 收藏吧!

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

Drupal开发 qushang 2年前 (2019-03-29) 104次浏览 0个评论

之前我们已经通过《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模块开发:Hello World添加新页面

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

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


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Drupal8开发教程:模块开发——创建新页面
喜欢 (0)
[399397742@qq.com]
分享 (0)
发表我的评论
取消评论

*

code

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址