使用composer-unused工具可检测Composer项目中未被引用的依赖包,通过全局或本地安装后运行命令扫描,输出未使用列表;也可手动检查代码中的use语句、类实例化及函数调用,结合IDE功能排查;需注意反射、自动发现或配置启用的包可能产生误报,删除前应确认其实际用途。

Composer 本身不提供直接检测未使用依赖的功能,但它可以通过结合其他工具和方法来识别项目中可能未被引用的包。
1. 使用 composer-unused 工具
composer-unused 是一个专为 Composer 项目设计的第三方工具,能自动扫描代码并报告已安装但未在代码中被引用的依赖包。
安装方式:
- 全局安装:
composer global require composer-unused/composer-unused - 或在项目中本地安装:
composer require --dev composer-unused/composer-unused
运行检测:
- 执行命令:
php -d memory_limit=-1 vendor/bin/composer-unused - 输出结果会列出“Unused packages”,即未被任何 PHP 文件引用的依赖项
2. 手动检查类和函数调用
如果不想引入额外工具,可以手动排查:
- 搜索
use语句、new ClassName或函数调用,确认是否引用了某个包中的类或方法 - 使用 IDE 的“查找引用”功能(如 PhpStorm)追踪依赖使用情况
- 检查配置文件、服务注册、事件监听等间接使用场景
3. 注意误报情况
某些依赖虽然没有显式调用,但仍可能是必要的,例如:
- 通过反射或自动发现机制加载的包(如 Laravel 的自动包发现)
- 仅通过配置文件启用的插件或中间件
- 运行时动态加载的组件
删除前应确认其实际用途,避免误删关键依赖。
基本上就这些。借助 composer-unused 能快速定位潜在冗余包,再辅以人工判断,就能较准确地清理无用依赖。










