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

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

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

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

配置 :在此字段中,您可以更改默认的 PHP 解释器和 Psalm 可执行文件的路径。
要仅更改解释器,请从项目中配置的本地和远程 PHP 解释器列表中选择所需的项目。
要更改 Psalm 可执行文件的路径,或同时更改解释器和路径,请单击
,位于 配置 列表旁边,以打开 Psalm 对话框,并按照 Psalm 对话框 参考页面中描述的方式编辑字段。
显示被忽略的文件 :使用此设置 从 Psalm 验证检查中排除文件。 有关更多信息,请参阅 质量工具 参考页面。
选项 :在此区域中,添加选项以 将 Psalm 作为 PhpStorm 检查运行。 按照 Psalm 参考页面 中的描述编辑字段。
启用 Psalm 作为 PhpStorm 检查
有两种方法可以将 Psalm 设置为 PhpStorm 检查:在 使用 Composer 安装 Psalm 期间自动设置,或在 PhpStorm 的检查设置中 手动设置。
通过 Composer 启用 Psalm 检查
您可以在 composer.json 的 scripts 部分中包含有关 Psalm 配置文件的信息。 当您 安装 或 更新 项目依赖项时,指定的配置文件将被检测到,并且 Psalm 验证 检查将自动启用。
如果在 scripts 的 composer.json 部分中未指定配置文件,PhpStorm 将另外检查项目根目录以定位具有 psalm.xml 或 psalm.xml.dist 默认名称的规则集。
在
scripts的 composer.json 部分中,将psalmPsalm 启动命令添加到某个叶子元素中。提供
--config参数和配置文件的路径:"scripts": { "psalm": "vendor/bin/psalm --config=psalm.xml" }
在检查设置中启用 Psalm 验证
在 设置 对话框(Ctrl+Alt+S )中,点击 检查 下的 编辑器。
在打开的 Inspections 页面上,展开 节点并选中 Psalm 验证 旁边的复选框。
在页面的右侧窗格中,配置 PhpStorm 如何处理 Psalm 检查输出:
初始化 Psalm 缓存
虽然 Psalm 验证 检查可以在单个文件上运行,但 Psalm 仍会对整个项目进行一次检查。 在大型项目中,首次运行 Psalm 时等待其响应可能会超过 工具进程超时 字段中指定的限制,该字段位于 Psalm 对话框中。 在这种情况下,PhpStorm 会显示错误消息:

以批处理模式运行 Psalm
从 Psalm 验证检查中排除文件
当等待 Psalm 响应的时间超过 工具进程超时 字段中指定的限制(位于 Psalm 对话框中)时,PhpStorm 建议将文件添加到 忽略列表。
在 设置 对话框(Ctrl+Alt+S )中,导航到 。
点击 显示被忽略的文件 链接。
要添加文件,请单击
并在打开的对话框中找到所需的文件。
要从列表中删除文件并让 Psalm 再次处理它,请选择该文件并单击
。
要从列表中删除所有文件,请单击
。
使用扩展的 @psalm 注解
除了常规的 PHPDoc 注释 ,PhpStorm 还支持 特定于 Psalm 的注解 ,这些注解由 Psalm 用于执行代码分析。 在指定注解时,大多数情况下您可以省略 @psalm- 部分。 要使用代码补全,请按 Ctrl+Space。

有关更多信息,请参见 PHP 类型检查。