为什么 vendor/autoload.php 找不到
这个错误不是 Composer 本身崩溃,而是你的 PHP 脚本(比如入口文件、测试脚本或命令行工具)在 require 或 include 它时失败了。根本原因是 vendor/autoload.php 这个文件压根不存在,或者路径写错了。
常见触发场景:
- 刚克隆项目但没运行
composer install - 误删了
vendor/目录或composer.lock - 在子目录下执行脚本,却用相对路径硬写
require '../vendor/autoload.php' - 项目用了
composer create-project但跳过了依赖安装步骤
composer install 和 composer update 该选哪个
如果 composer.lock 存在(且是你团队维护的),必须用 composer install —— 它按锁文件精确还原依赖,快、确定、可复现。此时不会重算依赖树,也不会改 composer.lock。
只有当你明确要升级依赖、修改 composer.json 后同步版本,才用 composer update。它会重新解析依赖并更新 composer.lock,容易引入意外变更。
立即学习“PHP免费学习笔记(深入)”;
执行前确认:
-
ls -l composer.lock看锁文件是否存在 -
composer --version确保不是太老的 1.x 版本(2.x 起默认行为更严格) - 若提示
Could not open input file: composer.phar,说明没正确安装或没加到$PATH
自动加载路径写法必须匹配项目结构
别把 vendor/autoload.php 当成固定“全局路径”。它的位置取决于你当前工作目录(getcwd())和 composer.json 的位置。Composer 默认只在 composer.json 所在目录生成 vendor/。