edmondscommerce / phpqa
简单的PHP QA流水线和脚本。主要是一个包含配置和脚本的依赖项集合,以一起运行
Requires
- php: ^7.2|^8.0
- ext-json: *
- edmondscommerce/php-parallel-lint: ~1.0.1
- friendsofphp/php-cs-fixer: ^2.16
- funkyproject/reflection-file: ^0.1.0
- infection/infection: ^0.10|^0.20
- jakub-onderka/php-console-highlighter: ^0.3.2
- maglnet/composer-require-checker: ^2.0
- phploc/phploc: ^4.0|^5.0|^6.0|^7.0
- phpmd/phpmd: ^2.8
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^8.0|^9.0
- sllh/composer-versions-check: ^2.0
- squizlabs/php_codesniffer: ~3
Requires (Dev)
- phpstan/phpstan-phpunit: ^0.12
Suggests
- nunomaduro/larastan: Laravel specific checks (PHPStan Wrapper)
- phpstan/phpstan-deprecation-rules: Checks for deprecated functions and methods
- phpstan/phpstan-doctrine: Adds checks for Doctrine
- phpstan/phpstan-mockery: Prevents Mockery from failing on Stan
- phpstan/phpstan-phpunit: Adds checks for PHPUnit tests
- phpstan/phpstan-symfony: Symfony specific checks
- dev-master
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.0
- 3.0.0
- 2.0.x-dev
- 2.0.11
- 2.0.10
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.2.x-dev
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- 0.0.3
- 0.0.2
- 0.0.1
- dev-php8
- dev-xdebug-readme-install
- dev-symfony5
- dev-FixLaravelSetPaths
- dev-PhpStanAutoLoadExtension
- dev-ParallelLintFork
- dev-ForkOfParallelLint
- dev-HotFix
This package is auto-updated.
Last update: 2024-09-23 19:14:06 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"
简介
PHPQA是一个使用BASH编写的质量保证流水线,可以在桌面作为开发过程的一部分运行,也可以作为持续集成(CI)流水线的一部分运行。
它按照逻辑顺序运行工具,并尽快失败。
PHPQA仅在Linux上进行了测试。
安装
您可以遵循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
===========================================