PHP Mess Detector
除了内置的代码辅助功能外,PhpStorm 还通过集成 PHP Mess Detector 工具提供源代码检查,该工具可检测与代码大小、不一致、未使用代码、命名约定违规、设计不良等相关的 潜在问题。
要在 PhpStorm 中使用 PHP Mess Detector 而不是命令行,您需要在 PhpStorm 中注册它,并将其配置为 PhpStorm 代码检查。 在 PhpStorm 中安装并启用后,该工具可用于任何打开的 PHP 文件,无需额外步骤即可启动。 即时代码检查会在文件的每次更新时激活,从而轻松消除发现的问题。
PHP Mess Detector 实时报告的错误和警告会以与 PhpStorm 内部代码检查 错误和警告相同的方式在编辑器中突出显示。 当工具以批处理模式运行时,错误和警告会显示在 问题工具窗口 中。 每条消息都有 phpmd 前缀,以将其与 PhpStorm 内部检查区分开来。
先决条件
在将 PHP Mess Detector 集成到 PhpStorm 之前,请确保满足以下先决条件:
包含 PHP 引擎可执行文件的目录必须添加到系统
path。 这允许代码质量工具脚本调用系统范围的 PHP 引擎。对于基于 Docker Compose 的 远程解释器 ,请确保使用
docker-compose exec模式以避免生成额外的容器。在 设置 对话框 (Ctrl+Alt+S) 中,前往 。
在打开的 PHP 页面上,单击
,位于 CLI 解释器 列表旁边。
在打开的 CLI 解释器 对话框中,为所选解释器设置 生存期 模式为 连接到现有容器('Docker-compose exec')。

安装并配置 PHP Mess Detector
使用 Composer 安装 PHP Mess Detector
当您使用 Composer 安装 PHP Mess Detector 时,PhpStorm 会自动下载必要的脚本,将其注册到 IDE 中,并可选地启用和配置相应的 代码检查。
在 composer.json 中,将
phpmd/phpmd依赖项记录添加到require或require-dev键中。 要获取包名称和版本的代码补全,请按 Ctrl+Space。请执行以下操作之一:
单击编辑器面板顶部的 安装 快捷链接。
如果启用了 未安装的 Composer 包 检查,PhpStorm 将突出显示当前未安装的声明依赖项。 按 Alt+Enter 并选择是要安装特定依赖项还是一次性安装所有依赖项。
单击 ,位于 composer.json 编辑器边栏的包记录旁边,将带您进入相应的 设置 页面,您可以在该页面 手动配置 PHP Mess Detector。

重置 PHP Mess Detector 配置
PHP Mess Detector 初次配置后,在 composer.json 中的进一步修改将不会影响检查配置。 要应用更新的更改,请重置 PHP Mess Detector 配置。
在 设置 对话框(Ctrl+Alt+S )中,导航到 。
点击
列表旁的 配置。
在打开的 PHP Mess Detector 对话框中,清空 PHP Mess Detector 路径 字段。

通过单击 composer.json 编辑器面板顶部的 更新 更新项目的 Composer 依赖项。 有关更多信息,请参阅 更新依赖项。
PhpStorm 将重新执行 PHP Mess Detector 配置,从而在 composer.json 中应用更改。
在 PhpStorm 中配置 PHP Mess Detector
在 设置 (Ctrl+Alt+S) | 中,您可以更改默认的 PHP 解释器,设置 手动下载并安装的 PHP Mess Detector 可执行文件的路径,或添加一些选项以在 PhpStorm 中运行 PHP Mess Detector 时传递给它。

配置 :在此字段中,您可以更改默认的 PHP 解释器和 PHP Mess Detector 可执行文件的路径。
要仅更改解释器,请从项目中配置的本地和远程 PHP 解释器列表中选择所需的项目。
要更改 PHP Mess Detector 可执行文件的路径,或同时更改解释器和路径,请单击
,位于 配置 列表旁边,以打开 PHP Mess Detector 对话框,并按照 Mess Detector 对话框 参考页面中描述的方式编辑字段。
显示被忽略的文件 :使用此设置 从 PHP Mess Detector 验证检查中排除文件。 有关更多信息,请参阅 质量工具 参考页面。
选项 :在此区域中,选择要在 将 PHP Mess Detector 作为 PhpStorm 检查运行时执行的验证旁边的复选框。 有关更多信息,请参阅 PHP Mess Detector 参考页面。
启用 PHP Mess Detector 作为 PhpStorm 检查
有两种方法可以将 PHP Mess Detector 设置为 PhpStorm 检查:在 使用 Composer 安装 PHP Mess Detector期间自动设置,或 在 PhpStorm 的检查设置中手动设置。
通过 Composer 启用 PHP Mess Detector 检查
您可以在 scripts 部分中包含有关默认和自定义 PHP Mess Detector 规则集的信息,位于 composer.json 。 当您 安装或 更新项目依赖项时,指定的规则集将被检测到,并且 PHP Mess Detector 验证检查将自动启用。
如果在 scripts 部分的 composer.json 中未指定规则集,PhpStorm 将另外检查项目根目录以定位具有 phpmd.xml 默认名称的规则集。 如果文件存在,它将被自动选择为检查的 自定义规则集。
在
scripts部分的 composer.json 中,将phpmdPHP Mess Detector 启动命令添加到某个叶子元素中。提供内置标准的名称或自定义规则集的路径作为参数,以表示使用的编码标准。
例如,添加以下记录将选择 Codesize和 Controversial内置规则集,以及在 /my/src/custom_ruleset.xml 文件中定义的自定义规则集:
"scripts": { "phpmd": "phpmd codesize,controversial,/my/src/custom_ruleset.xml" }
在检查设置中启用 PHP Mess Detector 验证
在 设置 对话框(Ctrl+Alt+S )中,点击 检查 下的 编辑器。
在打开的 Inspections 页面上,展开 节点并选中 PHP Mess Detector 验证 旁边的复选框。

在页面的右侧窗格中,配置 PhpStorm 如何处理 PHP Mess Detector 检查输出:
与团队共享自定义编码风格
将您的编码标准的根目录放在 项目根目录 下。
指定您的编码标准。
确保在 Inspections 页面顶部选择了一个 项目配置文件。 此类配置文件保存在特定项目的 .idea 目录中(例如, $PROJECT_DIR$/.idea/inspectionProfiles )。 欲了解更多信息,请参阅 检查配置文件。
以批处理模式运行 PHP Mess Detector
从 PHP Mess Detector 验证检查中排除文件
当等待 Mess Detector 响应的时间超过在 Mess Detector 对话框中 工具进程超时 字段指定的限制时,PhpStorm 建议将文件添加到 忽略列表。
在 设置 对话框(Ctrl+Alt+S )中,导航到 。
点击 显示被忽略的文件 链接。
要添加文件,请单击
并在打开的对话框中找到所需的文件。
要从列表中删除文件并让 Mess Detector 再次处理它,请选择该文件并单击
。
要从列表中删除所有文件,请单击
。