不推荐直接装 phpmd,应全局安装 phpmd/phpmd 并配置 path;因其是 cli 工具而非项目依赖,局部安装会导致调用繁琐、空间浪费、版本混乱且无法全局运行。

直接装 phpmd 不推荐,应该用 Composer 全局安装 phpmd/phpmd 包,并确保 PHP 二进制路径和 Composer bin-dir 在系统 PATH 中——否则运行 phpmd 命令会报 “command not found”。
为什么不能用 composer require phpmd/phpmd 在项目里装?
因为 phpmd 是命令行工具,不是项目依赖库。装在项目 vendor/ 下会导致:
• 每次都要写完整路径调用(如 ./vendor/bin/phpmd)
• 多个项目重复安装浪费空间
• 升级/卸载不统一,容易版本混乱
• 无法在任意目录下直接运行 phpmd --version
全局安装 phpmd/phpmd 的正确步骤
先确认 Composer 已配置全局 bin 目录可执行:
- 运行
composer config -g bin-dir查看全局 bin 路径(常见为~/.composer/vendor/bin或~/composer/vendor/bin) - 把该路径加进 shell 的
PATH(例如在~/.zshrc或~/.bashrc末尾加export PATH="$HOME/.composer/vendor/bin:$PATH",然后source ~/.zshrc) - 执行安装:
composer global require phpmd/phpmd - 验证:
phpmd --version应输出类似2.15.0
phpmd 运行时报 Class 'PDepend\TextUI\Command' not found 怎么办?
这是 phpmd 依赖的 pdepend/pdepend 版本冲突导致的,常见于全局 Composer 安装了多个含 pdepend 的工具(如 phpcpd、phploc)。解决方式只有两个:
- 删掉全局
pdepend:composer global remove pdepend/pdepend,再重装phpmd - 或改用局部安装 + 显式调用:
composer require --dev phpmd/phpmd,然后用./vendor/bin/phpmd src text codesize - 注意:不要手动
composer global require pdepend/pdepend——phpmd会自动拉取兼容版本
配置规则文件(phpmd.xml)放在哪?怎么指定?
规则文件可以是自定义 XML,也可以用内置规则集(如 codesize、unusedcode)。关键点:
- 默认不需配置文件,直接运行
phpmd src text unusedcode即可 - 若要用自定义规则,保存为
phpmd.xml,放在项目根目录或任意路径,用--ruleset指定:phpmd app/ xml ./phpmd.xml - XML 文件里别写错命名空间:
<ruleset name="My Rules" xmlns="http://phpmd.org/ruleset/1.0.0"></ruleset>—— 缺少xmlns会导致解析失败但无提示 - 规则名大小写敏感:
cleancode可用,CleanCode会报RuleSetNotFoundException
最常被忽略的是 PATH 配置和 pdepend 冲突;一旦卡在 “command not found” 或类找不到,优先检查这两处,比反复重装快得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











