Composer安装ThinkPHP6多应用项目需执行php think build生成app/admin等子目录,而非手动创建;启用app_multi=true可实现路径自动识别应用,注意命名空间、路由绑定与配置继承规则。

Composer 安装 ThinkPHP6 并启用多应用模式,不需要手动改目录或硬编码应用名——thinkphp/composer 官方包已原生支持,关键在安装后执行 php think build 生成应用骨架,而非直接复制粘贴旧项目结构。
用 composer create-project 正确初始化 TP6 多应用项目
ThinkPHP6 的多应用模式不是靠“新建多个 app 目录”实现的,而是通过 app 目录下的子目录(如 app/admin、app/api)被自动识别为独立应用。但默认安装只带一个 app/index,必须主动构建其余应用:
- 运行
composer create-project topthink/think tp6-demo拉取基础框架 - 进入项目后,执行
php think build --config build.php(需先有build.php配置) -
build.php示例内容(放在项目根目录):return [ '__file__' => [], 'admin' => ['controller', 'model', 'view', 'config', 'common.php'], 'api' => ['controller', 'model', 'config'], ]; - 执行后会自动生成
app/admin/和app/api/目录,并填充标准结构
多应用模式下入口文件与 URL 路由的关键区别
TP6 多应用不依赖子域名或二级目录式入口,所有应用共用同一个 public/index.php,区分靠 URL 中的 app 参数或路由规则:
- 默认访问
/index.php进入app/index应用 - 显式指定应用:访问
/index.php?s=/admin/index/index或配置路由绑定后使用/admin - 若要启用「路径自动识别应用」(即访问
/admin/xxx自动进入 admin 应用),需在config/app.php中开启:'app_multi' => true - 注意:
app_multi开启后,app目录下每个子目录名必须合法(仅字母、数字、下划线),否则路由解析失败
常见错误:composer install 后找不到 app/admin 或报错 Class not found
这不是 Composer 安装问题,而是多应用未生成或自动加载未注册:
该模板源码有公司简介、公司新闻、产品展示、客户案例、留言等企业官网常用页面功能。模板是响应式模板,支持多语言,完善的标签调用修改起来很方便。功能特点:1. 使用的框架采用HkCms开源内容管理系统v2.2.3版本、免费可以商用。2. 所需环境Apache/Nginx,PHP7.2 及以上 + MySQL 5.6 及以上。3. 安装教程: (1) 站点运行路径填写到public目录下。 (2) 浏览
立即学习“PHP免费学习笔记(深入)”;
- 没运行
php think build→app/admin根本不存在,自然无法加载 - 生成了目录但没更新自动加载 → 执行
composer dump-autoload -o - 控制器命名空间写错:多应用下控制器应为
app\admin\controller\Index,不是app\controller\admin\Index - URL 访问时未传
app=admin且未配置路由绑定 → 请求仍走默认index应用,找不到对应类
多应用真正的复杂点不在安装,而在路由隔离和配置继承——比如 app/admin/config/database.php 会自动合并覆盖 app/config/database.php,但中间件、事件监听器等不会自动跨应用共享,得手动在各应用的 provider.php 中注册。










