必须用 composer create-project topthink/think 安装 ThinkPHP 6+,因项目结构需完整骨架(app/、config/ 等)和 post-create-project-cmd 脚本;require 只引入扩展,不建结构,会导致 Class 'think\App' not found。

Composer 安装 ThinkPHP 时提示 could not find package topthink/think
这是最常见的失败现象,本质是 Packagist 镜像未同步或本地 Composer 源被污染。国内用户尤其容易遇到。
- 先运行
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/,安装完成后再切回 - 注意:ThinkPHP 6+ 不再提供
topthink/think这个根包,正确安装命令是composer create-project topthink/think,不是require
用 create-project 还是 require?
ThinkPHP 6 和 7 的项目结构是“应用即框架”,必须用 create-project 初始化完整骨架,require 只适合在已有项目中引入扩展(比如 topthink/think-queue)。
-
create-project会生成app/、config/、public/等目录,并自动执行post-create-project-cmd脚本(如生成 .env、设置权限) -
require topthink/think只把框架代码放进vendor/,不会创建应用结构,直接运行会报错Class 'think\App' not found - 如果已用
require错误安装,删掉vendor/topthink/和composer.lock,再跑create-project
安装后 php think 命令不生效
本质是入口脚本权限或 PHP CLI 版本问题,和框架本身无关。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 检查
think文件是否有可执行权限:ls -l think,若无x,执行chmod +x think - 确认当前终端用的是系统默认 PHP:
which php,有些环境(如 MAMP、XAMPP)自带 PHP,但 CLI 路径和 Web 不一致,导致php think找不到依赖 - Windows 用户注意:不要双击
think文件,必须在命令行中执行php think(因为它是 PHP 脚本,不是可执行二进制) - 如果提示
ParseError或Unknown named parameter,说明 PHP 版本低于 ThinkPHP 要求(TP6.1+ 需 PHP 7.2+,TP7 需 PHP 8.1+)
为什么 composer install 在新项目里报错?
因为 ThinkPHP 官方项目模板默认禁用了 composer install(通过 "type": "project" 和空 autoload 配置),它只接受 create-project 流程。
立即学习“PHP免费学习笔记(深入)”;
- 直接 clone GitHub 仓库后运行
composer install会失败,因缺少composer.lock或 autoload 配置不匹配 - 正确做法:始终从
create-project开始,不要手动初始化 composer.json - 若需定制依赖,应在
create-project成功后,在项目根目录下执行composer require xxx,而不是重写整个依赖树 - TP7 的
composer.json明确写了"minimum-stability": "stable",避免 dev 分支不稳定引入,别擅自改成dev
create-project 和 require 的语义边界,后面所有问题基本都从这里衍生。


















