
本文将指导你如何在 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 文件
在 hello 目录下创建一个 src 目录,并在 src 目录下创建一个 Controller 目录。在 Controller 目录下,创建一个名为 ExampleController.php 的文件,并添加以下内容:
'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 模块和自定义页面了。










