该跑 composer install;它严格按 composer.lock 安装写死版本,确保环境一致;无锁文件时才退化为解析 composer.json 并生成新锁。
和
不是手速问题,是环境是否可控的问题——用错一个,线上就可能挂。
刚拉完别人项目,该跑 install 还是 update?
无脑跑
。它只读
,装里面写死的版本号,确保你和提交者、CI、生产环境一模一样。
如果没
,
会自动 fallback 到
并生成新锁文件——这等于绕过团队约定,建议初始化后立刻
会忽略
,重新解析
,改锁文件,升级所有满足约束的包——除非你在本地调试兼容性或验证安全补丁,否则别碰
CI 脚本里出现
,等于把构建结果交给网络延迟和上游发布时间,凌晨告警大概率由此而来
加个新包,为什么不能手写
composer
.json 再 install?
手写容易漏字段、错格式、版本约束不带符号,导致后续解析失败或装错版本。必须用
,但参数要对:
开发工具(如
、
)必须加
,否则进
区,上线也会加载
指定版本要带约束符:
(推荐),而不是
(会被解释为严格等于
,基本匹配不到)
只想改
不安装?加
,比如
确认是 PHP 版本限制(如本地 PHP 8.3,但包声明只支持 8.2)?可临时加
强装——但别提交,CI 禁用
Class not found 报错,90% 不是命名空间写错了
是 autoloader 没刷新。Composer 不监听文件增删,新增 PSR-4 目录、改了
配置、甚至改了
类型的全局函数文件,都必须手动运行
。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
开发中频繁加类又不想每次
,加
:
,生成 classmap,比默认 PSR-4 查找更快
用了
autoload(比如
),改了那个文件也得重
,否则不会生效
生产环境进一步提速?加
:
vendor/autoload.php 必须放在入口文件最前面
不是“习惯”,是 PHP 自动加载机制决定的——它是一次性注册,一旦某个类名被首次引用而未定义,就会触发 fatal error,后续的
补救完全无效。
错误写法:
→ 报
或
正确写法:第一行就是
,且确保路径用
,不用
(CLI 和 Web 下相对路径行为不一致)
老项目没命名空间?别硬套 PSR-4;改用
,然后跑一次
国内网络下卡在
是常态,不是你网络坏了——换镜像源才是唯一解,且必须全局配:
。其他操作都只是浪费时间。
composer installcomposer updatecomposer installcomposer.lockcomposer.lockinstallupdategit add composer.lockcomposer updatecomposer.lockcomposer.jsoncomposer updatecomposer requirephpunit/phpunitphpstan/phpstan--devrequirecomposer require guzzlehttp/guzzle:^7.57.57.5.0composer.json--no-updatecomposer require symfony/console --no-update--ignore-platform-reqsautoloadfilescomposer dump-autoloadupdate-ocomposer dump-autoload -ofilessrc/functions.phpdump--classmap-authoritativecomposer dump-autoload --optimize --classmap-authoritativerequire_oncesession_start(); echo 'hello'; require 'vendor/autoload.php'; new Monolog\Logger('app');Cannot send session cache limiterClass 'Monolog\Logger' not foundrequire __DIR__ . '/vendor/autoload.php';__DIR__./vendor/autoload.php"classmap": ["lib/", "includes/"]composer dump-autoloadLoading composer repositoriescomposer config -g repo.packagist composer https://mirrors.aliyun.com/composer/