karlosagudo/fixtro

一个QA静态分析代码

1.0.11 2019-03-02 11:29 UTC

This package is auto-updated.

Last update: 2024-09-29 04:37:06 UTC


README

Build Status

一个工具/框架,用于修复和检查我们环境中的静态代码分析。

90% 的用户只需要运行安装命令,安装预提交,然后就可以使用代码修复器和代码分析器,从而检测可能的(或未来的)错误。为了做到这一点,请执行

composer require karlosagudo/fixtro --dev

vendor/bin/fixtro install

用法

{vendor-bin}/fixtro

为了安装

{vendor-bin}/fixtro install    

这将安装 fixtro 依赖项并将其作为预提交钩子。

这是在每次预提交中执行的命令

{vendor-bin}/fixtro precommit

如果想要更多关于进程的信息,请使用详细选项 -vvv

Fixtro 在找到本地二进制文件时会使用本地二进制文件(例如 phpunit、phpmd、php-cs-fixer),但如果未找到,则使用 fistro 的自身二进制文件。(这就是为什么安装会在 vendor 文件夹中运行 composer 的原因)

利用这一特殊功能,在新的项目中无需再安装 php-cs-fixer、phpunit 等工具,只需安装 fixtro 即可。此外,fixtro 将尝试查找项目根目录或构建目录中的本地配置文件,例如:.php_cs、phpunit.xml。因此,如果您想配置项目,只需像安装 php_cs_fixer 或 phpunit 一样考虑即可。

要求

  • Php 7.0+
  • Composer

重要 阅读关于不适配错误的部分,并 生成您自己的配置文件 (.php_cs, phpunit.xml, psalm.xml, phpmd.xml)(待办事项:这些文件将在安装时生成)您可以将这些文件放在项目的根目录中或构建目录中。

命令

位于 src/CodeQualityTool/Commands 文件夹中。有一个名为 GeneralCommand 的通用抽象,常规命令将继承。

示例

  • FixEntireCommand - 将在整个项目中运行所有检查器
  • FIxPreCommit- 它旨在作为 git-hook 预提交,因此将仅分析预提交文件。(将忽略 src 文件夹的配置并在提交文件中执行)

所有命令都有一个数组,您可以在其中放置分析器,并通过文件(文件夹 FilterFiles)进行过滤,并添加额外参数。这些分析器位于 Checker 文件夹中。

检查器

检查器是在每个提交中运行的修复器或检查器,并且已经配置好用于 fixtro 检查器列表

不适配错误

一些检查器将显示几乎不可能解决的可能错误,或者没有理由花费时间在此,但您仍然希望运行其他检查器。

这通常发生在 phpmd 和 psalm 中。您可以为此项目配置自己的配置文件,或通过代码上的注释来避免错误

您还可以使用项目中的监听器来避免错误。请参阅下一部分

在自己的项目中控制 Fixtro

使用事件

配置文件参考

配置 fixtro.yml 参考信息

#####TODO

  • 允许在配置中生成自己的运行器
  • 测试,创建一个假的修复器测试命令,以添加覆盖率
  • 检查项目是否定义了spec文件夹/ phphunit的phpunit和phpspec校验器

Fixtro Logo