Composer怎么安装ThinkPHP Composer怎么初始化TP6框架【框架】

3次阅读

默认 composer create-project topthink/think 安装的是 tp8 而非 tp6,需显式指定版本如 6.1.0 或 6.0.9;否则因目录结构、配置格式、路由写法差异导致 php think 报错“class ‘thinkapp’ not found”,常见于 autoload.php 缺失、think 文件无执行权限或环境不兼容;扩展包如 think-queue 必须使用 ^3.0 版本并与 tp6 严格对齐。

Composer怎么安装ThinkPHP Composer怎么初始化TP6框架【框架】

composer create-project 装出来的不是 TP6?

默认 composer create-project topthink/think 拉的是最新稳定版,但 TP6 已停止维护,当前最新版是 TP8(2024 年发布)。如果明确要 TP6,必须指定版本号,否则会装错或报错。

  • 装 TP6.1.x(最后一个正式版):composer create-project topthink/think=6.1.0
  • 装 TP6.0.x(兼容 PHP 7.2+):composer create-project topthink/think=6.0.9
  • 不写版本号 → 默认拉 dev-main 或 TP8,App 目录结构、config/app.php 格式、路由写法全都不一样

安装后 php think 报错“Class ‘thinkApp’ not found”

这是 TP6 的自动加载没生效,常见于 windows + WSL 混用、权限问题或 Composer 安装中断。TP6 依赖 vendor/autoload.phpthink 命令行脚本,缺一不可。

  • 先确认 vendor/autoload.php 存在且可读;不存在就重跑 composer install
  • 检查 think 文件是否是可执行脚本(linux/macos):ls -l think,若显示为普通文本需加执行权限:chmod +x think
  • Windows 用户若用 git bash 运行失败,改用 PowerShell 或 CMD,避免 shebang 解析异常
  • 别手动删 vendor/composer/autoload_classmap.php —— TP6 的类映射靠它启动

为什么 composer require topthink/think-queue 装不上?

TP6 的扩展包大多要求与框架主版本严格对齐,think-queue 的 3.x 版本只适配 TP6,但 Composer 默认可能尝试装 4.x(适配 TP8),导致冲突。

  • 显式指定兼容版本:composer require topthink/think-queue:^3.0
  • 装之前先看包的 composer.json:打开 https://packagist.org/packages/topthink/think-queue,点开 v3.0.11 的 “Requires”,确认它依赖 "topthink/framework": "^6.0.0"
  • 如果已装错,先 composer remove topthink/think-queue 再重装,避免 composer.lock 锁住错误版本
  • TP6 不支持 laravel 风格的 php artisan queue:work,只能用 php think queue:listen

TP6 的核心约束很实在:版本号必须锁死、扩展包必须对齐、命令行入口依赖文件权限和环境一致性。漏掉其中任何一个,php think 就可能直接哑火。

text=ZqhQzanResources