thinkphp 6 必须通过 composer psr-4 加载第三方类库:有官方包则用 composer require;无包则放 extend/ 目录并 require_once;自定义类需注册 psr-4 并 dump-autoload;离线部署 think-orm 需手动补全 vendor 结构与 autoload 配置。

ThinkPHP 6 引入第三方类库,核心逻辑很明确:它不再支持旧版的 import() 或 vendor() 动态路径加载机制,也不再默认扫描 Library/Vendor 这类目录。TP6 完全基于 Composer 的 PSR-4 自动加载体系,所有类(包括你自己的工具类、第三方 SDK)都必须被 Composer “认得”,否则就会报 Class not found。
确认类库是否已通过 Composer 管理
优先检查该第三方类库是否有官方 Composer 包(如 phpoffice/phpspreadsheet、overtrue/wechat)。如果有:
- 在项目根目录执行
composer require vendor/package-name - Composer 会自动写入
composer.json并注册 PSR-4 映射 - 无需手动 require,直接 use + new 即可使用
没有 Composer 包时:放 extend/ 目录 + 手动 require_once
适用于无 composer.json、无命名空间、或内网离线无法联网安装的 SDK(例如某些厂商提供的微信支付原始 SDK、旧版 PHPExcel 封装等):
- 将 SDK 文件夹整体放入
extend/目录(如extend/wxpay/、extend/phpqrcode/) - 在需要使用的控制器或服务类中,用
require_once显式引入主文件:require_once EXTEND_PATH . 'wxpay/lib/WxPay.Api.php'; - 注意:不能用
include或require(避免重复包含崩溃),也不能漏掉_once - 如果 SDK 内部有依赖关系(比如 A.php require B.php),确保路径相对正确,或统一改用
EXTEND_PATH拼接
自定义类或封装 SDK:走 PSR-4 注册 + dump-autoload
如果你把第三方类重构成带命名空间的结构(推荐长期维护项目这么做),就按标准流程走 Composer 加载:
- 在
app/extra/或新建app/sdk/下创建类文件,如app/sdk/WxMiniProgram.php,开头声明namespace appsdk; - 打开项目根目录
composer.json,在"autoload": {"psr-4": {...}}中添加:"app\sdk\": "app/sdk/" - 运行
composer dump-autoload -o(加-o启用优化模式) - 之后就能在任意地方
use appsdkWxMiniProgram;实例化
离线部署 think-orm 等核心扩展包
TP6.3+ 已剥离模型功能,thinkModel 必须由 topthink/think-orm 提供。若服务器无网络:
- 在有网环境下载对应版本 dist ZIP 包(如
v3.1.17-dist.zip) - 解压后,将
src/目录完整复制到vendor/topthink/think-orm/src/ - 在
vendor/topthink/think-orm/下新建composer.json,内容为:{"name": "topthink/think-orm", "autoload": {"psr-4": {"think\": "src/"}}} - 修改项目根目录
composer.json的 autoload,加入:"think\": "vendor/topthink/think-orm/src/" - 执行
composer dump-autoload -o,再测试new hinkModel()是否成功
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











