如何入门配置Composer安装phpmd?

2026-04-28 22:563阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计737个文字,预计阅读时间需要3分钟。

如何入门配置Composer安装phpmd?

直接安装+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 的工具(如 phpcpdphploc)。解决方式只有两个:

立即学习“PHP免费学习笔记(深入)”;

  • 删掉全局 pdependcomposer 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,也可以用内置规则集(如 codesizeunusedcode)。关键点:

  • 默认不需配置文件,直接运行 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” 或类找不到,优先检查这两处,比反复重装快得多。

标签:PHPComposer

本文共计737个文字,预计阅读时间需要3分钟。

如何入门配置Composer安装phpmd?

直接安装+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 的工具(如 phpcpdphploc)。解决方式只有两个:

立即学习“PHP免费学习笔记(深入)”;

  • 删掉全局 pdependcomposer 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,也可以用内置规则集(如 codesizeunusedcode)。关键点:

  • 默认不需配置文件,直接运行 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” 或类找不到,优先检查这两处,比反复重装快得多。

标签:PHPComposer