应使用 qossmic/php-dependency-graph:它基于 ast 静态分析类依赖,支持 html/svg 输出,可直接 composer require --dev 安装;而 php-dependency-analysis 已归档、不维护、不兼容 php 8+。

php-dependency-analysis 不是 Composer 官方包,也不是 Packagist 上主流维护的工具;你真正想用的、能直接 composer require 并静态分析类依赖的,是 qossmic/php-dependency-graph(即 PHP Dependency Graph),它才是当前稳定、可直接集成、支持 HTML/SVG 输出的类级依赖分析器。
为什么不能直接 composer require php-dependency-analysis
搜索 php-dependency-analysis 会发现它早已停止维护(最后更新在 2018 年),且未发布到 Packagist。它的 GitHub 仓库已归档,PHP 8+ 下无法安装,Composer 会报错:Could not find package php-dependency-analysis 或 Package "php-dependency-analysis" listed for update is not installed。别被旧教程误导——这不是一个可用的现代工具。
正确安装 php-dependency-graph
这是目前最接近你需求的替代方案:它基于 AST 静态分析源码,生成类/命名空间/文件层级的依赖图,不依赖运行时,且与 Composer 无缝集成。
- 执行命令:
composer require --dev qossmic/php-dependency-graph - 安装后二进制路径为:
./vendor/bin/phpdg - 确保项目中已定义
autoload(如 PSR-4 映射),否则分析结果为空——phpdg依赖 Composer 的自动加载配置来定位类文件 - 若项目无
autoload,至少要加临时配置:"autoload": {"psr-4": {"App\": "src/"}},再运行composer dump-autoload
生成类依赖图的最小可行命令
别一上来就跑全量分析。先验证是否能识别你的代码结构:
- 生成 HTML 报告(推荐):
./vendor/bin/phpdg generate --format=html --output=dep-graph - 只分析 src/ 目录:
./vendor/bin/phpdg generate --format=html --source-dir=src --output=dep-graph - 排除测试代码:
--exclude-dir=tests --exclude-dir=vendor - 输出 SVG(轻量但无交互):
./vendor/bin/phpdg generate --format=svg --output=graph.svg
注意:phpdg 默认不分析 vendor/,只看你自己的代码;它和 composer show --tree 是互补关系——后者看包依赖,前者看类调用链。
常见失败原因和绕过方式
运行 phpdg 报错?大概率卡在这几个点:
-
ParseError或SyntaxError:说明某 PHP 文件语法不合法(比如用了新版本特性但 PHP 版本太低),用--ignore-parse-errors跳过 - 空白图或“no classes found”:检查
composer.json中autoload是否覆盖了实际源码路径;没配就手动加,配了就确认路径拼写(如"src/"末尾斜杠不能少) - 内存不足(尤其大项目):
php -d memory_limit=2G ./vendor/bin/phpdg ... - Windows 下路径分隔符问题:用
--source-dir=src而不是--source-dir=.src
它不会告诉你“哪个类引用了哪个类”,但会生成带搜索、缩放、点击展开的 HTML 图——这才是你真正需要的可视化溯源能力。
类依赖不是靠包名推断出来的,得真读代码。别指望一条命令就出结论,先让 phpdg 跑通,再看图里箭头指向哪——那才是真实调用关系。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











