如何入门配置Composer安装phpmd?
- 内容介绍
- 文章标签
- 相关推荐
本文共计737个文字,预计阅读时间需要3分钟。
直接安装+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)。解决方式只有两个:
立即学习“PHP免费学习笔记(深入)”;
- 删掉全局
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">—— 缺少xmlns会导致解析失败但无提示 - 规则名大小写敏感:
cleancode可用,CleanCode会报RuleSetNotFoundException
最常被忽略的是 PATH 配置和 pdepend 冲突;一旦卡在 “command not found” 或类找不到,优先检查这两处,比反复重装快得多。
本文共计737个文字,预计阅读时间需要3分钟。
直接安装+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)。解决方式只有两个:
立即学习“PHP免费学习笔记(深入)”;
- 删掉全局
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">—— 缺少xmlns会导致解析失败但无提示 - 规则名大小写敏感:
cleancode可用,CleanCode会报RuleSetNotFoundException
最常被忽略的是 PATH 配置和 pdepend 冲突;一旦卡在 “command not found” 或类找不到,优先检查这两处,比反复重装快得多。

