最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ThinkPHP 6.0 多应用模式搭建全流程:实战
时间:2026-07-12 09:21:57 编辑:袖梨 来源:一聚教程网
ThinkPHP 6.0 多应用模式需四者严格对齐:扩展安装(composer require topthink/think-multi-app)、目录结构(删除app/controller、用php think app:create admin创建应用)、命名空间(如namespace appadmincontroller)、路由导入(Route::import('admin', 'admin')),缺一不可。
ThinkPHP 6.0 多应用模式不是改个配置就能跑通,它依赖扩展、目录结构、命名空间和路由加载四者严格对齐。漏掉任意一环,就会报 App not exists 或 Class not found。
装扩展 + 清旧结构
TP6.0 默认不带多应用能力,topthink/think-multi-app 是硬性前置依赖。不装它,目录建得再标准也没用。
- 在项目根目录执行:
composer require topthink/think-multi-app - 删掉
app/controller目录(及其下所有文件)——只要这个目录存在,框架就强制降级为单应用模式,app_multi_module => true也无效 - 检查
config/app.php中是否已启用:'app_multi_module' => true;较新版本(6.0.2+)已废弃auto_multi_app,不用管
建应用目录 + 对齐命名空间
每个应用必须是 app/ 下的小写子目录,且命名空间必须与路径完全一致。大小写或符号错误会导致 404 或类加载失败。
- 用命令创建后台应用:
php think app:create admin - 确认生成结构:存在
app/admin/controller/Index.php、app/admin/route.php、app/admin/config.php - 控制器类的命名空间必须为
namespace appadmincontroller;,不能是appAdmincontroller或appcontroller - 视图默认路径为
view/admin/,比如fetch('index')实际读取的是view/admin/index.html
显式导入子应用路由
route/route.php 是全局入口,但子应用的路由文件不会自动加载。不手动 import,app/admin/route.php 就是死文件。
立即学习“PHP免费学习笔记(深入)”;
- 在
route/route.php中添加:Route::import('admin', 'admin'); - 第二个参数
'admin'必须与app/admin目录名完全一致(大小写敏感) - 第一个参数
'admin'是路由分组标识,会影响 URL 前缀,比如访问/admin/dashboard -
app/admin/route.php内部应写Route::get('dashboard', 'Index/dashboard'),避免和主路由冲突
配置隔离与运行时分离
ThinkPHP 的配置合并机制是「应用级覆盖全局」,不是「开关式启用」。想让 admin 用独立数据库,关键不是打开某个 flag,而是把配置文件放对位置。
- 应用专属配置放在
config/admin/目录下,例如config/admin/database.php会自动覆盖全局database.php - 运行时目录自动按应用隔离:
runtime/admin/和runtime/index/互不干扰 - 如需设置默认应用,在
config/app.php中加:'default_app' => 'index'
相关文章
- 天堂2盟约里巨蚁女王怎么打-天堂2盟约如何击败巨蚁女王 07-20
- 决胜之心 魂镜影介绍 07-20
- 迷你世界炎狱魔龙如何获得 炎狱魔龙技能图鉴 07-20
- 迷你世界厨房修建攻略 迷你世界厨房搭建方法 07-20
- 洛克王国世界s3赛季什么时候开始 07-20
- 绝区零希格莉德立绘合集 希格莉德值得抽吗 07-20