欢迎访问Sonar Source中文网站!
语言选择: ∷ 

为什么 SonarQube 9.9 LTS 是 PHP 开发人员的必备工具

发布时间:2023-07-27浏览次数:80

在软件开发领域,清洁代码并不是“锦上添花”。这是必备的。这就是 SonarQube 的用武之地。它旨在帮助您和您的团队编写适合开发和生产的原始代码。


现在,来认识一下SonarQube 9.9 LTS凭借强大的 PHP 分析和专为 PHP 开发人员设计的超过 275 条规则,该版本改变了游戏规则。让我们深入了解一下其突出的功能和增强功能,这些功能和增强功能使其成为对以前版本(包括停产的 SonarQube 8.9 LTS)的不可错过的升级。

分析引擎更新

超强的分析速度 

SonarQube 9.9 LTS 通过引入拉取请求增量分析,显着加快了 SonarQube 商业版用户的分析速度。此功能侧重于仅分析拉取请求中引入的更改,而不是整个代码库。您可以在 SonarQube 9.9 LTS 公告中了解更多相关信息


所有这些速度提升将确保您花费更少的等待时间和更多的合并时间。

支持 PHP 8.1 和 8.2

新的 SonarQube LTS 包括对新语言版本的支持,这意味着我们更新了解析以理解新语法并更新了它们如何应用于新语言元素的规则。


为了跟上不断发展的 PHP 生态系统,SonarQube 9.9 LTS 现在将其支持扩展到 PHP 8.1 和 8.2。这意味着支持:

  • 枚举

  • 交叉口类型

  • 只读属性

  • 一流的可调用语法

  • 显式八进制数字表示法

  • 最终类常量

  • 只读类

  • ... 和更多!

导入 Psalm 和 PHPStan 报告

当使用多个工具报告代码问题时,如果所有结果不集中在一个地方,可能会导致工作流程脱节。能够将这些报告问题导入 SonarQube 意味着不再需要在工具之间切换,不再需要分散的焦点,只需对代码的运行状况有一个完整、清晰的视图即可直接解决问题。


Psalm 和 PHPStan 是 PHP 社区中广泛认可的分析器,现在可以与 SonarQube 9.9 LTS 更无缝地集成。它提供了将问题报告作为外部问题直接导入 SonarQube 的能力

误报更少

Sonar 投入了大量的精力来确保只提出真正的问题,并且我们的开发人员始终会审查规则提出的问题,以确保它们准确且相关。他们还通过商业支持渠道收到来自我们社区的报告。


SonarQube 9.9 LTS 修复了社区报告的误报,例如确保不会在保留的 IP 地址上引发 S1313(使用硬编码 IP 地址是安全敏感的)和 S3699(不应使用不返回任何内容的函数的输出) )不会在箭头函数等上引发!

新规则

提升您的 WordPress 插件开发水平 


到 2023 年,Wordpress 仍然是一种广受欢迎的 CMS——据估计,当今互联网上 40% 的网站都由 WordPress 提供支持!Wordpress 是用 PHP 编写的,因此它的插件生态系统也是用 PHP 开发的。过去,由于文档分散,确保这些插件的可维护性和安全性一直具有挑战性。


SonarQube 9.9 LTS 引入了 9 条专门针对 WordPress 插件开发人员的新规则,有助于确保开发可维护且更安全的 WordPress 插件。


在这里找到所有规则。


除了这些新规则之外,我们还调整了高级安全分析(在 SonarQube 商业版中提供)以了解 Wordpress 源、接收器和消毒器。现在,您可以确保只有受信任的数据通过您的代码传递 - 避免 SQL 和路径注入以及 URL 重定向等攻击!

编写干净且无错误的正则表达式

正则表达式 (regex) 是符号和字符的序列,表示要在较长文本中搜索的字符串或模式。正则表达式是一个令人难以置信的工具,可以表达条件,否则需要很多行代码才能捕获相同的模式。


虽然使用正则表达式对于开发人员来说非常常见,但这并不容易掌握。编写正则表达式很容易出错且耗时,而且很难很好地记录它们。一旦编写完成,识别其中的错误可能非常困难。它们不仅难以编写,而且由于其大小和复杂性,通常难以阅读和理解。


举个例子:


$re = '/[a-z\:\/\/\.]+(youtube|youtu)\.(com|be)\/(watch\?v=|embed\/|.+\?v=)?([^"&?\s]{11})?/m';

此正则表达式旨在匹配类似https://www.youtu.be/watch?v=dQw4w9WgXcQ和 的URLhttps://www.youtube.com/embed/dQw4w9WgXcQ


此正则表达式中的第三个捕获组是(watch\?v=|embed/|.+\?v=)?考虑 URL 格式的变化。您可能没有注意到此捕获组中的第三个替代方案.+\?v=是多余的,因为它已在第一个替代方案中涵盖watch\?v=,并且永远不会应用于/embed/URL。

因此,可以通过删除多余的替代组来简化此正则表达式,从而使我们的可读性更好一些:

$re = '/[a-z\:\/\/\.]+(youtube|youtu)\.(com|be)\/(watch\?v=|embed\/|)?([^"&?\s]{11})?/m';

对于开发人员来说,自己很难发现这一点。对于 SonarQube 来说一点也不难。

在 SonarQube 9.9 LTS 中,我们的开发人员引入了 25 条新规则,以帮助 PHP 开发人员编写高效、无错误、安全且更简单的正则表达式!您可以在rules.sonarsource.com上找到与正则表达式相关的所有PHP 规则


微信扫码微信扫码 关注我们

  • 24小时咨询热线180-210-69380

  • 移动电话180-210-69380

Copyright © 2022 All Rights Reserved. 地址:上海市浦东新区崮山路538号808 苏ICP123456 XML地图