必须用composer create-project安装ThinkPHP6+,因require仅装源码不建项目结构,缺app/、public/、.env及初始化脚本,导致自动加载失败而报Class 'think\App' not found。

必须用 composer create-project topthink/think 安装 ThinkPHP 6+ 或 8.x,任何用 composer require topthink/think 的尝试都会导致 Class 'think\App' not found —— 因为它只装代码不建结构,缺 app/、public/、.env 和初始化脚本。
为什么 require 一定不行
ThinkPHP 6+ 是“应用即框架”模型,不是纯库。你执行 composer require topthink/think,Composer 只会把框架源码放进 vendor/topthink/framework(或类似路径),但不会生成 app/ 目录、不会复制 public/index.php、不会运行 post-create-project-cmd 脚本,也不会写默认 .env。结果就是:入口文件 require 的 vendor/autoload.php 虽在,但自动加载规则里压根没注册 think\ 根命名空间——think\App 自然找不到。
- 错误现象:
php public/index.php报Class 'think\App' not found,或php think提示命令不存在 - 验证方式:在项目根目录运行
php -r "require 'vendor/autoload.php'; var_dump(class_exists('think\App'));",返回bool(false)就是没加载上 - 补救办法:删掉
vendor/topthink/和composer.lock,再跑composer create-project topthink/think
create-project 怎么指定 TP6 还是 TP8
默认 composer create-project topthink/think 会拉取最新稳定版,目前是 TP8.x(PHP 8.1+)。如果你需要 TP6(PHP 7.2+ 兼容),必须显式锁版本;否则可能装到不兼容的 TP8,或因本地缓存残留装错分支。
- 装 TP8(推荐新项目):
composer create-project topthink/think myapp(默认)或加具体版号:composer create-project topthink/think myapp 8.0.5 - 装 TP6(旧环境/迁移):
composer create-project "topthink/think:^6.1" myapp或锁定小版本:composer create-project "topthink/think:6.3.10" myapp - 别用
dev-master或6.x-dev:这些不是稳定发布,CI/CD 中易失败,且可能缺失关键初始化逻辑
安装后 php think 不生效的常见原因
php think 是 ThinkPHP 的命令行入口脚本,不是系统命令。它不生效和框架无关,基本是权限、路径或 PHP 环境问题。
-
think文件无执行权限(Linux/macOS):运行ls -l think,若没有x,执行chmod +x think - 不在项目根目录运行:必须在含
think文件和vendor/的目录下执行,cd myapp && php think run - PHP CLI 版本不对:运行
which php和php -v,确认 CLI 使用的是你预期的 PHP(比如不是 MAMP/XAMPP 自带的旧版) - Windows 用户注意:不要双击
think文件,必须用命令行执行php think(它是 PHP 脚本,不是 .exe)
国内用户卡在 “Could not find package” 怎么办
这个报错几乎全是镜像源问题。Packagist 官方源同步延迟,或你本地 Composer 配置了失效镜像(如已停用的 phpcomposer.com),导致查不到 topthink/think 包。
- 先清缓存:
composer clear-cache - 检查当前源:
composer config -g repo.packagist,输出应为https://packagist.org;如果不是,重置:composer config -g repo.packagist https://packagist.org - 临时切阿里云镜像(安装时用):
composer config -g repo.packagist https://mirrors.aliyun.com/composer/,装完再切回官方源 - 别信过期教程里的
https://packagist.phpcomposer.com—— 该镜像已于 2025 年底正式下线
最易被忽略的一点:TP6 和 TP8 的内置服务命令不同。TP6 用 php think serve,TP8 用 php think run。输错命令不会报语法错,而是直接提示“command not found”,容易误判为安装失败。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











