使用 composer status 可检查 vendor 目录中被修改的文件,帮助发现手动更改的依赖包,避免环境不一致等问题。运行命令后,Composer 会比对 vendor/ 下各包的当前文件与原始版本,列出发生变化的包;添加 -v 参数可查看具体改动文件,如 monolog/monolog 中的 Logger.php 和 StreamHandler.php。此举有助于防止直接修改第三方代码引发的协作与部署问题。若为临时调试修改,建议通过 composer install 或 update 还原;若需自定义逻辑,应 fork 项目并提交修改,再通过 composer.json 的 repositories 引入私有版本。定期执行 composer status 能保持依赖清洁,减少潜在风险。

使用 composer status 命令可以快速检查项目中 vendor 目录下被修改的文件,帮助你发现哪些依赖包的代码被手动更改过,避免潜在问题。
查看 vendor 中被修改的文件
在项目根目录运行以下命令:
composer status
Composer 会扫描 vendor/ 目录,比对已安装包的原始文件内容。如果发现任何文件与原始发布版本不一致,就会列出这些被修改的包。
显示详细信息
加上 -v 参数可查看具体是哪些文件被改动:
composer status -v
输出示例:
- Package monolog/monolog: changed files:
- src/Monolog/Logger.php
- src/Monolog/Handler/StreamHandler.php
这有助于定位问题,比如误改第三方代码或调试后忘记恢复。
为什么需要检查 vendor 状态?
- 防止因手动修改依赖导致上线环境行为不一致
- 协助团队协作时排查“在我机器上能跑”的问题
- 提醒你不该直接改 vendor,应通过 fork + composer.json 指定版本来定制
修复被修改的文件
- 若修改是临时调试,建议还原:
composer install或composer update 包名 - 若确实需要自定义逻辑,应 fork 原项目、提交修改,然后在
composer.json中通过repositories引入你的版本
基本上就这些。定期运行 composer status 能帮你保持依赖干净,减少意外。










