在 Drupal 中创建一个简单的自定义页面

DDD

DDD

2025-10-03

164人浏览

原创

在 drupal 中创建一个简单的自定义页面

本文将指导你如何在 Drupal 9 中创建一个显示 "Hello, world" 的简单自定义页面。通过创建一个自定义模块,定义路由,并编写控制器,你可以轻松地在 Drupal 网站上添加自定义内容。本文将详细介绍模块的结构、路由配置和控制器代码,并提供注意事项,帮助你避免常见的错误,快速上手 Drupal 开发。

要在 Drupal 中创建自定义页面,通常需要创建一个自定义模块,并在该模块中定义路由和控制器。以下是一个简单的步骤指南:

1. 创建模块目录

首先,在 modules/custom 目录下创建一个新的模块目录,例如 hello。如果 modules/custom 目录不存在,则需要先创建它。

2. 创建 info.yml 文件

在 hello 目录下,创建一个名为 hello.info.yml 的文件,并添加以下内容:

name: Hello World Module
description: Creates a page showing "Hello World".
package: Custom

type: module
core: 8.x
core_version_requirement: ^8 || ^9

这个文件定义了模块的名称、描述、所属包和核心版本要求。

3. 创建 routing.yml 文件

在 hello 目录下,创建一个名为 hello.routing.yml 的文件,并添加以下内容:

hello.my_page:
  path: '/hello'
  defaults:
    _controller: '\Drupal\hello\Controller\ExampleController::myPage'
    _title: 'My first page in D9'
  requirements:
    _permission: 'access content'

这个文件定义了路由 /hello,并将其映射到 \Drupal\hello\Controller\ExampleController::myPage 控制器方法。_title 定义了页面的标题,_permission 定义了访问权限。

PHP 8.5.5
PHP 8.5.5

PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。

下载

4. 创建 Controller 文件

在 hello 目录下创建一个 src 目录,并在 src 目录下创建一个 Controller 目录。在 Controller 目录下,创建一个名为 ExampleController.php 的文件,并添加以下内容:

<?php namespace Drupal\hello\Controller;

use Drupal\Core\Controller\ControllerBase;

/**
 * Provides route responses for the Example module.
 */
class ExampleController extends ControllerBase {

  /**
   * Returns a simple page.
   *
   * @return array
   *   A simple renderable array.
   */
  public function myPage() {
    return [
      '#markup' => 'Hello, world',
    ];
  }
}

这个文件定义了一个名为 ExampleController 的控制器类,其中包含一个名为 myPage 的方法,该方法返回一个包含 "Hello, world" 的渲染数组。

5. 启用模块并清除缓存

登录 Drupal 管理界面,转到 admin/modules 页面,找到 "Hello World Module" 并启用它。然后,转到 admin/config/development/performance 页面,清除所有缓存。

6. 访问页面

现在,你应该可以通过访问 /hello 或 index.php/hello 来看到 "Hello, world" 页面了。

注意事项:

  • 命名空间: 请确保你的命名空间与模块的目录结构一致。例如,如果你的模块名为 hello,则命名空间应为 Drupal\hello。这是最常见的错误来源。
  • 缓存: 在修改模块代码后,务必清除 Drupal 缓存,以使更改生效。
  • 路由: 检查 routing.yml 文件中的路径和控制器是否正确配置。
  • 权限: 确保用户具有访问该页面的权限。在本例中,我们使用了 access content 权限。
  • 服务器配置: 某些服务器配置可能会阻止 Drupal 正确处理路由。如果遇到问题,请检查你的服务器配置。

总结:

通过遵循以上步骤,你应该能够成功创建一个简单的 Drupal 自定义页面。记住,仔细检查你的代码,并确保所有配置都正确。如果你遇到问题,请仔细阅读错误消息,并参考 Drupal 文档或在线社区。 掌握这些基础知识,你就可以开始构建更复杂的 Drupal 模块和自定义页面了。

相关专题

更多
vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1264

5

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2276

3

asp连接access数据库的方法
asp连接access数据库的方法

连接的方法:1、使用ADO连接数据库;2、使用DSN连接数据库;3、使用连接字符串连接数据库。想了解更详细的asp连接access数据库的方法,可以阅读本专题下面的文章。

2023.10.18

946

4

access和trunk端口的区别
access和trunk端口的区别

access和trunk端口的区别是Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。想了解更多access和trunk端口相关内容,可以阅读本专题下面的文章。

2023.10.31

405

3

access怎么导入数据
access怎么导入数据

access导入数据步骤:1. 选择数据源 2. 选择要导入的文件 3. 指定导入选项 4. 选择导入目标 5. 预览数据 6. 导入数据即可。想了解更多access的相关内容,可以阅读本专题下面的文章。

2024.04.10

1478

10

access数据库用途
access数据库用途

access数据库是一种关系型数据库管理系统,主要用途包括:数据存储和管理;数据查询和检索;报告和表单设计;应用程序开发。想了解更多access数据库的相关内容,可以阅读本专题下面的文章。

2024.04.10

3633

16

火山引擎API接入教程
火山引擎API接入教程

火山引擎API接入适合需要在应用、脚本、后台服务或AI工具中调用火山引擎能力的开发者参考。本专题整理控制台入口、服务开通、API Key获取、接口地址配置、请求参数填写、调用测试、权限设置、额度查询和常见接口报错排查。

2026.08.04

0

10

火山引擎DeepSeek API调用教程
火山引擎DeepSeek API调用教程

火山引擎DeepSeek API适合需要在应用、脚本、智能体或AI编程工具中调用DeepSeek模型的开发者参考。本专题整理火山引擎控制台入口、模型服务开通、API Key获取、Base URL配置、模型名称填写、调用测试、额度查询和常见接口报错排查。

2026.08.04

0

10

火山引擎控制台操作教程
火山引擎控制台操作教程

火山引擎控制台中常用功能包括API密钥管理、模型调用配置、云资源查看、账单明细、用量统计和权限分配。本专题整理控制台基础操作、服务开通流程、Key创建与保存、费用消耗查看、子账号权限设置和调用失败排查,方便开发者完成日常管理。

2026.08.04

0

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习