ThinkPHP部署Composer依赖的核心是分场景使用正确命令并验证:新项目用composer create-project初始化完整骨架,已有项目用composer require添加扩展,安装后须检查vendor和composer.json,并手动配置服务提供者、清理缓存、设置权限。
ThinkPHP 部署 Composer 依赖,核心是“在正确位置、用正确命令、做正确验证”。不是所有 require 都能直接用,也不是装完就万事大吉。关键看你是初始化新项目,还是给已有项目加功能。
ThinkPHP 6+ 不再支持 composer require topthink/think 这种方式建项目——它只会把框架放进 vendor,不生成 app/、config/、public/ 等目录,必然报错 Class 'thinkApp' not found。
composer create-project topthink/think tp-app
composer create-project "topthink/think:^8.0" tp-app
tp-app 目录,确认存在 public/ 和 runtime/ 目录chmod -R 755 runtime/
public/ 为根目录,否则路由和静态资源会 404验证码、队列、Excel、视图引擎等都属于“扩展包”,必须在已存在的 ThinkPHP 项目根目录(含 composer.json、app/、config/)下操作。
composer require topthink/think-captcha
composer require topthink/think-queue:^4.0
require 区域新增了该包vendor/topthink/xxx/config/ 复制到项目 config/ 目录装完不等于能用。ThinkPHP 6/7/8 依赖服务提供者注册机制,漏了这步,类找不到、命令不生效。
立即学习“PHP免费学习笔记(深入)”;
config/app.php,检查 'providers' 数组是否包含扩展的服务提供者类,例如:thinkcaptchaCaptchaService::class
composer.json 中是否有 "dont-discover": ["*"] —— 有就删掉,否则自动发现失效composer dump-autoload -o 强制刷新自动加载映射安装慢、找不到包、权限拒绝,90% 是环境配置问题,不是代码问题。
composer config -g repo.packagist https://mirrors.aliyun.com/composer/
composer clear-cache
which php 和 php -v,避免 MAMP/XAMPP 环境错配think 文件,必须用 php think run 启动think 文件可执行:chmod +x think