karlosagudo / fixtro
一个QA静态分析代码
Requires
- php: ^7.0
- behat/behat: ^3.3
- symfony/console: ^2.0 || ^3.0 || ^4.0
- symfony/event-dispatcher: ^2.0 || ^3.0 || ^4.0
- symfony/finder: ^2.0 || ^3.0 || ^4.0
- symfony/process: ^2.0 || ^3.0 || ^4.0
- symfony/yaml: ^2.0 || ^3.0 || ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.1
- jakub-onderka/php-parallel-lint: ^0.9.2 || ^1.0
- phpmd/phpmd: @stable
- phpstan/phpstan: dev-master
- phpunit/phpunit: ^5.0 || ^6.0 || ^7.0
- sensiolabs/security-checker: ^4.0
- vimeo/psalm: dev-master
README
一个工具/框架,用于修复和检查我们环境中的静态代码分析。
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
配置文件参考
#####TODO
- 允许在配置中生成自己的运行器
- 测试,创建一个假的修复器测试命令,以添加覆盖率
- 检查项目是否定义了spec文件夹/ phphunit的phpunit和phpspec校验器