composer安装ThinkPHP6教程_多应用模式下的目录结构与安装【指南】
发布时间 - 2025-12-27 00:00:00 点击率:次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 安装问题,而是多应用未生成或自动加载未注册:
- 没运行
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 中注册。
# php
# thinkphp
# composer
# 编码
# app
# 路由
# 区别
# 中间件
# 命名空间
# 继承
# class
# public
# 事件
# database
# 自动识别
# 绑定
# 找不到
# 而非
# 自动加载
# 放在
# 目录下
# 多个
# 不需要
# 下划线
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
郑州企业网站制作公司,郑州招聘网站有哪些?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
太平洋网站制作公司,网络用语太平洋是什么意思?
C#如何调用原生C++ COM对象详解
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
网站建设要注意的标准 促进网站用户好感度!
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
高端建站三要素:定制模板、企业官网与响应式设计优化
Linux系统命令中screen命令详解
实现点击下箭头变上箭头来回切换的两种方法【推荐】
千库网官网入口推荐 千库网设计创意平台入口
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
免费网站制作appp,免费制作app哪个平台好?
JavaScript如何实现继承_有哪些常用方法
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
MySQL查询结果复制到新表的方法(更新、插入)
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
在线制作视频的网站有哪些,电脑如何制作视频短片?
简单实现Android验证码
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
济南网站建设制作公司,室内设计网站一般都有哪些功能?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
桂林网站制作公司有哪些,桂林马拉松怎么报名?
lovemo网页版地址 lovemo官网手机登录
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
JS中对数组元素进行增删改移的方法总结
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
在线制作视频网站免费,都有哪些好的动漫网站?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
香港服务器如何优化才能显著提升网站加载速度?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
油猴 教程,油猴搜脚本为什么会网页无法显示?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
微信推文制作网站有哪些,怎么做微信推文,急?
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel如何配置和使用缓存?(Redis代码示例)


=> ['controller', 'model', 'config'],
];