2

我们在两点上运行静态分析测试:

  • 在 Git 预提交钩子上,在这种情况下,我们使用 phpcs、phpmd、stylelint 和 eslint 引擎(香草安装 + Drupal Coder 用于添加 Drupal 标准)
  • 我们每周更新一次 SonarQube 上的项目仪表板,它运行以下质量配置文件:Drupal (PHP)、JS 和 SCSS

我们希望将我们的标准与单一标准保持一致,但使用不同的引擎会使这变得更加困难(甚至不可能?)。我可以想到一些可能的方法来实现这一目标:

  • 手动对齐 pre-commit 和 SonarQube 的规则
  • 使用 SonarQube 进行我们的预提交测试
    我不确定,因为通过查看 SonarQube 的 Drupal 标准,那里的规则似乎比 Drupal PHPCS 标准(来自 Drupal Coder)少得多 -相关问题 I发现了它
    (还有另一个有关使用 phpCS 对齐 SonarQube 的 PHP 插件的相关问题)
  • 使用我们的引擎集为 SonarQube 创建一个自定义插件(没办法..)

在我看来,理想的解决方案是让 SonarQube 像大多数静态分析工具一样读取 Git 存储库中的规则文件(例如 phpcs.dist.xml)。

我还看到了SonarQube 和 stylelint 规则映射——这是我发现的关于这些引擎的唯一映射。

我们怎样才能以最简单的方式克服这个问题?

4

1 回答 1

0

您可以在 CLI中使用PHPStan ,就像使用编码标准检查或 PHPUnit 测试一样:

vendor/bin/phpstan analyse src --level=0

将此设置在您的 pre/post-commit 挂钩中,您就可以开始了。阅读更多关于首次安装 PHPStan 的简短文章

于 2018-01-05T22:44:39.357 回答