简单的PHP QA流水线和脚本。主要是一个包含配置和脚本的依赖项集合,以一起运行

安装次数: 22,242

依赖者: 13

建议者: 0

安全性: 0

星标: 6

关注者: 2

分支: 2

开放问题: 14

类型:项目

4.2.3 2021-01-07 15:31 UTC

README

Edmonds Commerce 提供

版本 4 更新

引入了PHPStan 0.12,这非常好

但是您需要执行以下操作

在升级之前删除PHPStan符号链接

rm -f bin/phpstan*

确保正确的PHPStan配置

如果您正在覆盖qaConfig文件夹中的phpstan.neon,那么您需要确保其中有这个

parameters:
    level: max
    inferPrivatePropertyTypeFromConstructor: true

版本 3 更新

您应该更新您的phpunit.xml文件,以使用 printerClass="\PHPUnit\Util\TestDox\CliTestDoxPrinter"

见 ./phpunit.xml

简介

PHPQA是一个使用BASH编写的质量保证流水线,可以在桌面作为开发过程的一部分运行,也可以作为持续集成(CI)流水线的一部分运行。

它按照逻辑顺序运行工具,并尽快失败。

PHPQA仅在Linux上进行了测试。

Codacy Badge Build Status Code Coverage

安装

您可以遵循dev-master,通常应该相当稳定(所有功能都是在功能分支中开发的,并且在进入master之前必须通过CI。或者,如果您想要真正的稳定性,您可以跟踪您选择的发布版本。

composer require edmondscommerce/phpqa:dev-master@dev --dev

您的项目的composer.json需要指定一个bin文件夹。如果它还没有,请添加以下内容

    ...
    "config": {
        "bin-dir": "bin"
    }
    ...

运行

要运行完整流水线,只需在您的BASH终端中执行即可

./bin/qa 

用法

$ ./bin/qa -h

Usage:
bin/qa [-t tool to run ] [ -p path to scan ]

Defaults to using all tools and scanning whole project based on platform

 - use -h to see this help

 - use -p to specify a specific path to scan

 - use -t to specify a single tool:
     psr|psr4         psr4 validation
     com|composer     composer validation
     st|stricttypes   strict types validation
     lint|phplint     phplint
     stan|phpstan     phpstan
     unit|phpunit     phpunit
     infect|infection infection
     md|messdetector  php mess detector
     ma|markdown      markdown validation
     bf|phpbf         php beautifier and fixer
     cs|phpcs         php code sniffer
     l|loc            lines of code and other stats


默认情况下,PHPQA将针对整个项目根目录运行。

单个工具

如果您想运行单个工具,请使用-t选项。请参阅上面的用法以获取工具的快捷方式

./bin/qa -t stan

指定路径

一些工具允许我们将扫描限制到指定的路径。要指定路径,请使用-p选项。

./bin/qa -p ./src/specified/path.php

组合

您可以同时使用这两个选项

./bin/qa -t stan -p ./src/specified/path.php

配置

请参阅配置文档

流水线

请参阅流水线文档

QA工具

有关所有工具的完整详细信息和配置说明,请参阅PHPQA Tools

平台检测

PHPQA附带了一些通用的工具和配置,但也有一些内置的配置文件。

有关如何工作的信息可以在平台检测页面上找到

特定平台文档位于

用于持续集成(CI)

请参阅CI文档

Git钩子

请查看gitHooks以获取可用于您项目的Git钩子

建议使用符号链接使用这些钩子。请注意,您的实际Git钩子不应包含.bash文件扩展名

例如,要使用pre-commit钩子,您会这样做

#cd to project root
cd /var/www/project/root

#cd to hooks folder
cd .git/hooks/

#create relative symlink
ln -s ../../vendor/edmondscommerce/phpqa/gitHooks/pre-commit.bash pre-commit

然后确保钩子可执行,通过运行它来验证

#cd to project root
cd /var/www/project/root

./git/hooks/pre-commit

然后你应该会看到

===========================================
PHPQA Pre Commit Hook
===========================================