0

0

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

DDD

DDD

发布时间:2025-10-03 18:13:15

|

144人浏览过

|

来源于php中文网

原创

在 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 定义了访问权限。

4. 创建 Controller 文件

PathFinder
PathFinder

AI驱动的销售漏斗分析工具

下载

在 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 模块和自定义页面了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

329

2023.10.09

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

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

478

2023.10.16

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

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

123

2023.10.18

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

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

337

2023.10.31

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

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

459

2024.04.10

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

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

596

2024.04.10

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

136

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

47

2026.03.10

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号