thinkphp 8.1 默认已开启自动 url 调度,无需额外配置即可使用。多模块开发需通过命令行创建模块目录,并在应用配置中启用多模块支持,随后访问时通过 url 路径指定模块名。

如何验证自动 URL 调度是否生效
自动 URL 调度在 ThinkPHP 8.1 中是默认行为,框架会自动将 URL 路径映射到对应的控制器和方法。你可以通过创建一个简单的测试控制器来验证这一点,确保路由解析正常且没有冲突。

namespace app\controller;
use think\App;
class Test
{
public function index()
{
return 'Auto Route Works';
}
}
将上述代码保存为 app/controller/Test.php,然后访问 /test/index,如果返回 Auto Route Works,说明自动调度已生效。注意,若存在同名路由定义,手动路由优先级更高,可能覆盖自动调度结果。
立即学习“PHP免费学习笔记(深入)”;
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
多模块配置的具体步骤是什么
多模块配置需要先在应用根目录下创建模块文件夹,例如 app/admin,然后在模块内创建控制器和视图。接着在 config/app.php 中设置 multi_module 为 true,并可选地配置模块列表以限制可访问的模块范围。

// config/app.php
return [
'multi_module' => true,
'module_list' => ['admin', 'api'],
];
完成配置后,访问 /admin/test/index 即可调用 app/admin/controller/Test.php 中的方法。若未配置 module_list,则所有子目录作为模块均可访问,建议显式声明以提升安全性。
当模块不存在时会发生什么
如果请求的模块在文件系统中不存在,且未配置 module_list 进行白名单过滤,ThinkPHP 8.1 会抛出 ModuleNotFoundException 异常。若启用了 module_list,即使模块目录存在,不在列表中的模块也会被拒绝访问,从而防止未授权模块加载。


















