发布于2026-07-11 阅读(0)
扫一扫,手机访问
先说结论:不推荐直接装 phpmd,正确做法是用 Composer 全局安装 phpmd/phpmd 包。装完之后,务必确保 PHP 的二进制路径以及 Composer 的 bin-dir 都在系统的 PATH 环境变量里——否则你在终端里敲 phpmd 的时候,只会得到一个冰冷的 "command not found"。
composer require phpmd/phpmd 在项目里装?很多人习惯性地在项目目录下执行 composer require phpmd/phpmd,这其实是个误区。phpmd 是命令行工具,不是项目的依赖库。把它塞进 vendor/ 目录下,会引发一连串麻烦:
./vendor/bin/phpmd,手都酸了phpmd --version,这工具等于废了一半先把 Composer 的全局 bin 目录搞到手,这是后面一切的基础:
composer config -g bin-dir,常见的路径是 ~/.composer/vendor/bin 或 ~/composer/vendor/binPATH 里。如果你用 zsh,就在 ~/.zshrc 末尾加一行 export PATH="$HOME/.composer/vendor/bin:$PATH",然后别忘了 source ~/.zshrccomposer global require phpmd/phpmdphpmd --version 应该输出类似 2.15.0 的信息Class 'PDepend\TextUI\Command' not found 怎么办?这个报错通常是因为 pdepend/pdepend 版本冲突了。常见场景是全局 Composer 里同时装了多个依赖 pdepend 的工具,比如 phpcpd、phploc。解决方案只有两条:
pdepend,执行 composer global remove pdepend/pdepend,然后重装 phpmdcomposer require --dev phpmd/phpmd,然后每次用 ./vendor/bin/phpmd src text codesize 来运行需要特别提一句:不要去手动 composer global require pdepend/pdepend,phpmd 会自动拉取兼容版本,手动操作反而容易把依赖搞乱。
规则文件可以是自定义的 XML,也可以用内置的规则集,比如 codesize、unusedcode。这里有几个关键点:
phpmd src text unusedcode 就能工作phpmd.xml,放在项目根目录或任意路径,然后用 --ruleset 参数指定:phpmd app/ xml ./phpmd.xml。少了 xmlns 属性,解析会失败,而且连个报错提示都没有,很坑cleancode 是有效的,但写成 CleanCode 就会直接报 RuleSetNotFoundException最后说句实在话:最容易被忽略的就是 PATH 配置和 pdepend 版本冲突。一旦卡在 "command not found" 或者类找不到的问题上,优先检查这两处,比你反复卸载重装要高效得多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8