IDE 扩展

到目前为止,我们所看到的工具都有一个共同点:它们需要在我们编写代码后才能应用于我们的代码。当然,有总比没有好,但如果这些工具能在我们编写代码时立即给出反馈,那岂不是更好?

许多其它开发人员也是这么想的,因此他们为目前最流行的集成开发环境(Visual Studio Code (VS Code)PhpStorm)创建了扩展:

  • PhpStorm 是 JetBrains 公司推出的一款成熟的商业集成开发环境,它有几种专门针对 PHP 的工具、检查和本章讨论的许多代码质量工具的内置集成。它还有许多有用的扩展。你可以免费试用 30 天。

  • VS Code 是微软公司推出的一款高度灵活的代码编辑器,它拥有大量第三方(部分为商业)扩展,可以将这些工具变成一个集成开发环境,适用于当今几乎所有相关的编程语言。由于代码编辑器本身是免费的,因此越来越受欢迎。

其它 PHP IDE

PhpStorm 和 VS Code 并不是唯一的 PHP 集成开发环境。其它 IDE 还有 NetBeans ( https://netbeans.apache.org )、Eclipse PDT (https://www.eclipse.org) 或 CodeLobster ( https://www.codelobster.com )。

在本节中,我们将为你介绍这两个集成开发环境的三个扩展:

  • 适用于 PhpStorm 的 PHP 检查(EA 扩展)

  • 适用于 VS Code 的 Intelephense

PhpStorm 中的代码质量工具集成

PhpStorm 为我们讨论过的以下工具提供无缝集成: PHP CS Fixer、PHPMD、PHPStan 和 Psalm。更多信息请访问: https://www.jetbrains.com/help/phpstorm/php-code-quality-tools.html

PHP 检查(EA Extended)

此插件 (https://github.com/kalessil/phpinspectionsea) 适用于 PhpStorm。它将在已有的检查库中添加更多类型的检查,涵盖代码风格、架构或可能的错误等主题。

集成开发环境检查

现代集成开发环境已经配备了许多有用的代码检查功能。在 PHPStorm 中,它们被称为检查。其中一些已在默认情况下启用,更多则可手动激活( https://www.jetbrains.com/help/phpstorm/code-inspection.html#accessinspections-and-settings )。对于 VS Code,你需要先安装一个扩展。更多信息请查看文档 (https://code.visualstudio.com/docs/languages/php)。

安装

与所有 PhpStorm 插件一样,安装是通过 File -> Settings -> Plugins 对话框完成的。你可以在供应商的网站( https://www.jetbrains.com/help/phpstorm/managing-plugins.html )上找到如何安装插件的详细信息。只需搜索 EA Extended 即可。请注意,该插件还有第二个版本,即 EA Ultimate,需要付费购买。我们将不在本书中介绍它。

安装后,并非所有检查都会立即生效。让我们来看看 PhpStorm 检查配置,如图 7.4 所示:

image 2023 11 12 09 24 12 663
Figure 1. Figure 7.5: The Inspections configuration dialog in PhpStorm

本插件的所有检查功能均可在 Php 检查(EA Extended)部分找到。默认情况下未激活的检查项目可以通过勾选旁边的复选框轻松激活。我们建议在激活其它检查之前阅读文档( https://github.com/kalessil/phpinspectionsea/tree/master/docs ),否则可能会导致规则过多。你可以稍后再查看它们。

使用

PHP 检查(EA Extended)不仅会对问题发出警告,而且还经常提供所谓的快速修复,让集成开发环境为你完成工作。这里有一个例子。请注意第 7 行高亮显示的 if 子句:

image 2023 11 12 09 30 46 312
Figure 2. Figure 7.6: Example code with an issue found by PHP Inspections (EA Extended)

将鼠标指针悬停在高亮区域上时,PhpStorm 会弹出一个窗口,提供有关改进建议的进一步说明:

image 2023 11 12 09 32 02 085
Figure 3. Figure 7.7: PHP Inspections (EA Extended) suggesting a code improvement

你可以选择同时按 Alt + Shift + Enter 直接修复问题,也可以点击高亮区域显示快速修复气泡。点击气泡后,你将看到一个菜单,其中包含更多选项。也可以按 Alt + Enter 键调用以下对话框:

image 2023 11 12 09 35 37 928
Figure 4. Figure 7.8: The Quick-Fix options menu

PhpStorm 现在为你提供了几种修复方法。第一个用 [EA] 标记的是插件的建议。再点击一下即可应用修复:

image 2023 11 12 09 37 07 852
Figure 5. Figure 7.9: The code after applying a Quick-Fix

就是这样!只需几秒钟,你的代码就变得更简短、更易读了。PHP 检查(EA Extended)是对 PhpStorm 的一大补充,因为它提供了合理的检查功能,并将其无缝集成。如果你正在使用这个集成开发环境,就应该毫不犹豫地安装它。

在团队中工作时进行检查

这些检查是改进代码和学习最佳实践的好方法。但是,这样做也有一个很大的缺点:如何确保为项目工作的每个开发人员都激活了相同的检查?我们将在团队工作中介绍这一主题。

Intelephense

我们要介绍的第二个扩展是 VS Code 的 Intelephense。它是该编辑器最常下载的 PHP 扩展,提供了大量功能(如代码自动补全和格式化),将 VS Code 变成了一个功能全面的 PHP IDE。该扩展还有一个商业高级版本,可提供更多功能。要安装该插件,请按照 Marketplace 网站上的说明操作( https://marketplace.visualstudio.com/items?itemName=bmewburn.vscode-intelephense-client )。

Intelephense 不具备成熟的商业集成开发环境所能提供的各种功能,但对于免费服务来说,它是一个完美的选择。它提供所谓的诊断(类似于 PhpStorm 中的检查),可以在插件设置界面中进行配置,如图 7.9 所示:

image 2023 11 12 09 54 46 037
Figure 6. Figure 7.10: The Intelephense settings screen

使用

下图显示了 Intelephense 诊断功能的运行情况:

image 2023 11 12 09 55 29 983
Figure 7. Figure 7.11: A sample class showing how Intelephense highlights issues

从这里可以看出两点。首先,更明显的是 TestClass 下方的红线。将鼠标指针悬停在 TestClass 上,会弹出一个解释窗口: Undefined Type TestClass。这是有道理的,因为这个类并不存在。

其次,更微妙的是,你会发现 $ununsedAttribute$testInstance 的颜色比其它变量略深。这说明了另一个问题,将鼠标悬停在其中一个变量上即可发现:

image 2023 11 12 09 56 46 951
Figure 8. Figure 7.12: An info popup in Intelephense

弹出窗口告诉我们,代码的其它地方没有使用 $unsuserAttribute。这同样适用于 $testInstance

虽然它提供了一些基本的问题检测规则和代码格式,但在撰写本文时,可以说这个插件的重点显然不在干净的代码上。不过,鉴于 VS Code 和该插件都是免费提供的,你手头上已经有了一个不错的 PHP IDE 来开始编码。

在 VS Code 中集成代码质量工具

与 PhpStorm 一样,可以使用插件将一些常用的代码质量工具集成到 VS Code 中,例如 PHPStan ( https://marketplace.visualstudio.com/items?itemName=calsmurf2904.vscode-phpstan )、PHP CS Fixer (https://marketplace.visualstudio.com/items?itemName=junstyle.php-cs-fixer ),以及 PHPMD ( https://marketplace.visualstudio.com/items?itemName=ecodes.vscode-phpmd ) 等。因此,如果你想使用 VS Code 编程,请务必时不时查看 Marketplace 以获取新插件。

总结

在本章中,我们了解了帮助你创建高质量 PHP 代码的最先进的工具。它们将帮助你在软件开发生命周期 (SDLC) 的早期发现问题,从而节省你大量的时间。PHP 社区仍然活跃且富有成效,我们无法涵盖本书中存在的所有出色软件。然而,借助我们在本章中介绍的工具,你现在已经做好了迈向干净代码之旅的准备。

在下一章中,你将了解如何使用已建立的指标以及收集这些指标的必要工具来评估代码质量。到时候那里见!

进一步阅读

如果你想尝试更多代码质量工具,可以考虑以下项目: