PhpStorm 2021.3 Help

PHP_CodeSniffer

PhpStorm 通过与PHP_CodeSniffer工具的集成提供代码样式检查,该工具可验证您的代码是否与您选择的编码标准保持一致。您可以指定预定义的编码标准之一,或使用您自己先前定义的编码标准,根目录位于默认 PHP_CodeSniffer 的Standards目录之外。此外,您可以与您的团队分享您的自定义编码风格。

要在 PhpStorm 中使用 PHP_CodeSniffer 而不是命令行,您需要在 PhpStorm 中注册并将其配置为 PhpStorm代码检查。一旦在 PhpStorm 中安装并启用,该工具就可以在任何打开的 PHP 文件中使用,并且不需要额外的步骤来启动它。文件中的每次更新都会激活动态代码检查,因此可以轻松摆脱发现的问题。

PHP_CodeSniffer 即时报告的错误和警告显示为弹出消息。当该工具以批处理模式运行时,错误和警告会显示在“问题”工具窗口中。每条消息都有phpcs前缀以将其与 PhpStorm 内部检查区分开来。PhpStorm 还与PHP Code Beautifier and Fixer工具集成,可让您修复许多检测到的问题。

先决条件

在将 PHP_CodeSniffer 集成到 PhpStorm 之前,请确保满足以下先决条件:

  • 您正在使用 PHP_CodeSniffer 1.5.0 及更高版本。

  • 必须将包含 PHP 引擎可执行文件的目录添加到系统中path。这允许代码质量工具脚本执行对系统范围的 PHP 引擎的调用。

  • 对于基于 Docker Compose 的远程解释器,请确保使用execmode 以避免产生额外的容器。

    1. 设置/首选项对话框 ( Ctrl+Alt+S) 中,转到PHP

    2. 在打开的PHP页面上,单击CLI 解释器列表浏览按钮旁边的。

    3. 在打开的CLI 解释器对话框中,将所选解释器的生命周期模式设置为连接到现有容器 ('docker-compose exec')

      docker-compose exec 用于 PHP 解释器

安装和配置 PHP_CodeSniffer

PHP_CodeSniffer 脚本可以用作本地脚本、与 PHP 解释器关联的脚本,或者声明为项目依赖项并通过Composer安装的脚本,这是首选和推荐的方式。

使用 Composer 安装 PHP_CodeSniffer

在开始之前,请确保 Composer 已安装在您的计算机上并在当前项目中初始化,如Composer 依赖项管理器中所述。

当您使用 Composer 安装 PHP_CodeSniffer 时,PhpStorm 会自动下载必要的脚本,在 IDE 中注册它们,并且可以选择启用和配置相应的代码检查

  1. composer.json中,将squizlabs/php_codesniffer依赖记录添加到requireorrequire-dev部分。按Ctrl+Space以获得包名称和版本的代码完成。

  2. 执行以下操作之一:

    • 单击编辑器面板顶部的安装快捷方式链接。

    • 如果启用了未安装的 Composer 包检查,PhpStorm 将突出显示当前未安装的已声明依赖项。按Alt+Enter并选择是否要一次安装特定依赖项或所有依赖项。

点击composer.json设置/首选项按钮编辑器gutter中包记录旁边的,跳转到对应的Settings/Preferences页面,手动配置PHP_CodeSniffer

composer.json 中 php_codesniffer 设置的装订线图标

重置 PHP_CodeSniffer 配置

初始配置 PHP_CodeSniffer 后,composer.json中的进一步修改不会影响检查配置。要应用更新的更改,请重置 PHP_CodeSniffer 配置。

  1. 设置/首选项对话框 ( Ctrl+Alt+S) 中,导航到PHP | 质量工具

  2. 在打开的质量工具页面上,展开PHP_CodeSniffer区域并单击配置列表浏览按钮旁边的。

  3. 在打开的PHP_CodeSniffer对话框中,清空PHP_CodeSniffer 路径字段。

    空 PHP_CodeSniffer 路径字段
  4. 通过单击composer.json编辑器面板顶部的更新来更新项目 Composer 依赖项。有关详细信息,请参阅更新依赖项。

PhpStorm 将重新执行 PHP_CodeSniffer 配置,从而应用composer.json中的更改。

手动配置 PHP_CodeSniffer

您可以使用手动下载的本地 PHP 代码质量工具脚本或与 PHP 解释器关联的脚本。可以有许多本地和远程 PHP 解释器,在Settings/Preferences对话框的PHP页面上指定的解释器被认为是Project Default在配置远程 PHP 解释器配置本地 PHP 解释器中了解有关配置 PHP 解释器的更多信息。

选择要使用的 PHP_CodeSniffer 脚本

  1. 设置/首选项对话框 ( Ctrl+Alt+S) 中,导航到PHP | 质量工具

  2. 在打开的Quality Tools页面上,展开PHP_CodeSniffer区域。从配置列表中,选择 PHP_CodeSniffer 脚本:

    • 要使用与特定远程 PHP 解释器关联的脚本,请选择该解释器的名称。

    • 要使用本地脚本,请选择Local。在这种情况下,无论项目中使用的是本地还是远程的 PHP 解释器,都会执行本地 PHP_CodeSniffer。请注意,PHP_CodeSniffer 只能有一个本地配置,因为 PhpStorm 运行包含 PHP 引擎路径的脚本( Windows 为phpcs.bat ,Linux 和 macOS 为phpcs )。

    • 要使用与默认项目解释器关联的脚本,即在设置/首选项对话框的PHP页面上选择的脚本,请选择默认项目解释器

配置本地 PHP_CodeSniffer 脚本

  1. 下载并安装PHP_CodeSniffer脚本。

    要检查 PHP_CodeSniffer 安装,请切换到安装目录并运行以下命令:

    phpcs --版本

    如果该工具可用,您将收到以下格式的消息:

    Squiz 的 PHP_CodeSniffer 版本 <version>(稳定)。(http://https://uiz.net)

    要根据您自己的自定义编码标准检查代码,请创建它。将规则和指向它们的规则集.xml文件存储在编码标准根目录中。

  2. 在 PhpStorm 中注册本地 PHP_CodeSniffer 脚本:

    • 设置/首选项对话框 ( Ctrl+Alt+S) 中,导航到PHP | 质量工具

    • 在打开的质量工具页面上,展开PHP_CodeSniffer区域并单击配置列表浏览按钮旁边的。

    • 在打开的PHP_CodeSniffer对话框中,在PHP_CodeSniffer 路径字段中指定phpcs.batphpcs PHP_CodeSniffer 可执行文件的位置。手动键入路径或单击并在打开的对话框中选择相关文件夹。浏览按钮

      要检查phpcs.batphpcs的指定路径是否确保了 PhpStorm 和 PHP_CodeSniffer 之间的交互,即可以从 PhpStorm 启动该工具,并且 PhpStorm 将从它接收问题报告,请单击“验证”按钮。此验证等同于运行phpcs --version命令。如果验证成功通过,PhpStorm 会显示检测到的 PHP_CodeSniffer 版本信息。

  3. 如有必要,在Tool process timeout字段中,指定您希望 PhpStorm 等待 PHP_CodeSniffer 的结果多长时间,然后终止进程以防止过多的 CPU 和内存使用。

  4. 如有必要,在PHP Code Beautifier and Fixer Settings区域的Path to phpcbf字段中提供PHP Code Beautifier and Fixer工具的路径。这将让您自动修复 PHP_CodeSniffer 检测到的许多错误。如果您使用 Composer 安装 PHP_CodeSniffer,则会自动检测并设置PHP Code Beautifier 和 Fixer 。

配置与 PHP 解释器关联的 PHP_CodeSniffer 脚本

  1. 设置/首选项对话框 ( Ctrl+Alt+S) 中,转到PHP | 质量工具

  2. 在打开的质量工具页面上,展开PHP_CodeSniffer区域并单击配置列表浏览按钮旁边的。PHP_CodeSniffer对话框打开,在左侧窗格中显示所有已配置 PHP_CodeSniffer 脚本的列表,其中一个是 Local 类型其他以与脚本关联的 PHP 解释器命名。

  3. 单击添加按钮工具栏上的 。在打开的远程解释器的 PHP_CodeSniffer对话框中,选择远程 PHP 解释器以使用关联的脚本。如果列表不包含相关解释器,请单击浏览按钮并在CLI 解释器对话框中配置远程解释器,如配置远程 PHP 解释器中所述。

    当您单击OK时,PhpStorm 会将您带回PHP_CodeSniffer对话框,其中新的PHP_CodeSniffer配置已添加到列表中,右侧窗格显示选择的远程 PHP 解释器、与其关联的 PHP_CodeSniffer 的路径以及高级 PHP_CodeSniffer 选项.

  4. 如有必要,在Tool process timeout字段中,指定您希望 PhpStorm 等待 PHP_CodeSniffer 的结果多长时间,然后终止进程以防止过多的 CPU 和内存使用。

  5. 如有必要,在PHP Code Beautifier and Fixer Settings区域的Path to phpcbf字段中提供PHP Code Beautifier and Fixer工具的路径。这将让您自动修复 PHP_CodeSniffer 检测到的许多错误。如果您使用 Composer 安装 PHP_CodeSniffer,则会自动检测并设置PHP Code Beautifier 和 Fixer 。

将 PHP_CodeSniffer 配置为 PhpStorm 检查

使用 Composer 配置 PHP_CodeSniffer 检查

您可以在composer.json的脚本部分中包含有关默认和自定义 PHP_CodeSniffer 规则集的信息。当您安装更新项目依赖项时,将检测指定的规则集并自动启用PHP_CodeSniffer 验证检查。

如果没有在composer.jsonscripts部分指定规则集,PhpStorm 将额外检查项目根目录以找到具有 phpcs.xml默认名称的规则集。如果文件存在,它将被自动选择为检查的自定义规则集。

  • composer.jsonscripts部分中,将PHP_CodeSniffer 启动命令添加到叶元素之一中。phpcs

    提供--standard参数以表示使用的编码标准。例如,添加以下记录会将编码标准设置为PSR2

    “脚本”:{“phpcs”:“phpcs --standard=PSR2”}

    添加以下记录会将编码标准设置为Custom并将规则集的路径设置为<project root>/phpcs.xml

    “脚本”:{“phpcs”:“phpcs --standard=phpcs.xml”}

此外,您可以在composer.jsonrequire-dev部分中提供自定义的非 PSR 标准依赖项以自动检测它。目前,支持以下标准:

手动配置 PHP_CodeSniffer 检查

  1. Settings/Preferences对话框 ( Ctrl+Alt+S) 中,单击Editor下的Inspections

  2. 在打开的检查页面上,展开PHP | Quality Tools节点并选中PHP_CodeSniffer validation旁边的复选框。

  3. 在页面的右侧窗格中,使用选项区域中的控件配置 PHP_CodeSniffer 工具:

    1. Severity列表中,选择 PHP_CodeSniffer 检查的严重程度。选定的值决定了 PhpStorm 处理检测到的差异的严重程度并显示在检查结果中。

    2. 范围列表中,选择将检查应用程序限制到的范围。

    3. Check files with extensions字段中,提供 PHP_CodeSniffer 应检查的文件扩展名的逗号分隔列表。

    4. 要让 PHP_CodeSniffer 报告除错误之外的警告,请选中Show warnings as...复选框并从列表中选择严重程度。要仅报告错误并禁止报告警告,请清除Show warnings as...复选框。

    5. 如果您依赖自定义的第三方编码标准(例如CoderJoomla Coding Standards),则需要在使用之前将其与 PHP_CodeSniffer 集成。为此,请选中已安装的标准路径复选框,单击浏览按钮并在打开的对话框中选择自定义标准安装目录。

    6. 选择Show sniff name复选框以在编辑器或检查结果中显示相应的嗅探器名称以及检查摘要。

    7. 指定要应用的编码标准。

      • 要使用预定义的编码标准之一,请在编码标准列表中选择它,指定编码样式以检查您的代码。该列表包含安装在主php_codesniffer目录结构中的所有编码标准。

      • 要根据您自己先前定义的编码标准检查您的代码,请选择自定义。单击浏览按钮并在打开的Custom Coding Standard对话框中,在Path to ruleset字段中为您自己的编码标准指定ruleset.xml文件的路径。手动键入路径或单击并在打开的对话框中选择相关文件夹。浏览按钮

修复 PHP_CodeSniffer 检测到的问题

PhpStorm 与PHP Code Beautifier 和 Fixer工具集成,可让您修复许多检测到的问题。如果您使用 Composer 安装 PHP_CodeSnifferPHP Code Beautifier 和 Fixer将被检测并自动设置。否则,您需要手动设置

使用快速修复解决问题

检测到问题后,PhpStorm 会根据 PHP_CodeSniffer检查设置突出显示它。

  1. 将插入符号放在检测到的问题上,然后单击意图操作按钮,或按Alt+Enter

  2. 选择PHP Code Beautifier and Fixer:从弹出菜单中修复整个文件。请注意,这将修复在当前文件中检测到的所有问题。

您还可以在批处理模式中检测问题,或通过代码清理自动修复它们。

使用代码清理自动修复问题

  1. 从主菜单中,选择 代码 | 代码清理

  2. 在打开的“指定代码清理范围”对话框中,选择要应用检查配置文件的范围。

  3. 从列表中选择检查配置文件,或单击以在打开的代码清理检查对话框中浏览按钮配置新配置文件。您还可以单击以检查将应用哪些修复并确保启用PHP_CodeSniffer 验证检查。浏览按钮

    代码清理检查对话框
  4. 单击“确定”启动代码清理。

以批处理模式运行 PHP_CodeSniffer

  1. 从主菜单中,选择代码 | 检查代码

  2. 从列表中选择检查配置文件,或单击以在打开的检查对话框中浏览按钮配置新配置文件。您还可以单击以检查将应用哪些修复并确保启用PHP_CodeSniffer 验证检查。浏览按钮

  3. 在问题工具窗口中查看检查结果。PHP_CodeSniffer 报告的错误和警告带有前缀,phpcs以将它们与 PhpStorm 内部检查区分开来。

从 PHP_CodeSniffer 验证检查中排除文件

当等待 PHP_CodeSniffer 响应超过PHP_CodeSniffer对话框的Tool process timeout字段中指定的限制时,PhpStorm 建议将该文件添加到忽略列表中

  1. 设置/首选项对话框 ( Ctrl+Alt+S) 中,导航到PHP | 质量工具

  2. 在打开的质量工具页面上,展开PHP_CodeSniffer区域并单击显示忽略的文件链接。

    • 要添加文件,请单击添加按钮并在打开的对话框中找到所需的文件。

    • 要从列表中删除文件并让 PHP_CodeSniffer 再次处理它,请选择该文件并单击删除按钮

    • 要从列表中删除所有文件,请单击关闭按钮

最后修改时间:2021 年 11 月 22 日