Skip to content

Commit 1d67d1a

Browse files
authored
Preparation 3.0 (#323)
* Preparation 3.0 * Update with ECS and Rector * Bugs fixed
1 parent 6f2de5a commit 1d67d1a

File tree

575 files changed

+11413
-15892
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

575 files changed

+11413
-15892
lines changed

.gitsplit.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ splits:
5151
target: "https://${GH_TOKEN}@github.com/web-token/encryption-pack.git"
5252
- prefix: "packs/signature"
5353
target: "https://${GH_TOKEN}@github.com/web-token/signature-pack.git"
54-
- prefix: "src/Easy"
55-
target: "https://${GH_TOKEN}@github.com/web-token/jwt-easy.git"
5654

5755
origins:
5856
- ^master$

.php_cs.dist

Lines changed: 0 additions & 80 deletions
This file was deleted.

Makefile

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
.PHONY: it
2+
it: coding-standards tests static-analyse performance-tests mutation-tests
3+
4+
.PHONY: code-coverage
5+
code-coverage: vendor ## Show test coverage rates
6+
vendor/bin/phpunit --coverage-text
7+
8+
.PHONY: fix-coding-standards
9+
fix-coding-standards: vendor ## Fix all files using defined PHP-CS-FIXER rules
10+
vendor/bin/ecs --fix
11+
12+
.PHONY: coding-standards
13+
coding-standards: vendor ## Check all files using defined PHP-CS-FIXER rules
14+
vendor/bin/ecs
15+
16+
.PHONY: mutation-tests
17+
mutation-tests: vendor ## Run mutation tests with minimum MSI and covered MSI enabled
18+
vendor/bin/infection --logger-github -s --threads=$(nproc) --min-msi=80 --min-covered-msi=85
19+
20+
.PHONY: tests
21+
tests: vendor ## Run all tests
22+
vendor/bin/phpunit --color
23+
24+
vendor: composer.json composer.lock
25+
composer validate
26+
composer install
27+
composer normalize
28+
29+
.PHONY: tu
30+
tu: vendor ## Run all unit tests
31+
vendor/bin/phpunit --color --group Unit
32+
33+
.PHONY: tf
34+
tf: vendor ## Run all functional tests
35+
vendor/bin/phpunit --color --group Functional
36+
37+
.PHONY: static-analyse
38+
static-analyse: vendor ## Run static analyse
39+
vendor/bin/phpstan analyse
40+
41+
.PHONY: performance-tests
42+
performance-tests: vendor ## Run performance test suite
43+
vendor/bin/phpbench run -l dots --report aggregate
44+
45+
.PHONY: rector
46+
rector: vendor ## Check all files using Rector
47+
vendor/bin/rector process --ansi --dry-run --xdebug
48+
49+
50+
.DEFAULT_GOAL := help
51+
help:
52+
@grep -E '(^[a-zA-Z_-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'
53+
.PHONY: help

composer.json

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,32 +58,31 @@
5858
}
5959
},
6060
"require": {
61-
"php": ">=7.2",
61+
"php": ">=8.0",
6262
"ext-json": "*",
6363
"ext-mbstring": "*",
6464
"ext-openssl": "*",
6565
"ext-sodium": "*",
66-
"brick/math": "^0.8.17|^0.9",
66+
"brick/math": "^0.9",
6767
"fgrosse/phpasn1": "^2.0",
6868
"paragonie/constant_time_encoding": "^2.4",
6969
"psr/event-dispatcher": "^1.0",
7070
"psr/http-client": "^1.0",
7171
"psr/http-factory": "^1.0",
72-
"spomky-labs/aes-key-wrap": "^5.0|^6.0",
73-
"symfony/config": "^4.2|^5.0",
74-
"symfony/console": "^4.2|^5.0",
75-
"symfony/dependency-injection": "^4.2|^5.0",
76-
"symfony/event-dispatcher": "^4.2|^5.0",
77-
"symfony/http-kernel": "^4.2|^5.0",
72+
"spomky-labs/aes-key-wrap": "^7.0",
73+
"symfony/config": "^5.4|^6.0",
74+
"symfony/console": "^5.4|^6.0",
75+
"symfony/dependency-injection": "^5.4|^6.0",
76+
"symfony/event-dispatcher": "^5.4|^6.0",
77+
"symfony/http-kernel": "^5.4|^6.0",
7878
"symfony/polyfill-mbstring": "^1.12"
7979
},
8080
"require-dev": {
8181
"ext-curl": "*",
8282
"ext-gmp": "*",
8383
"bjeavons/zxcvbn-php": "^1.0",
8484
"blackfire/php-sdk": "^1.14",
85-
"friendsofphp/php-cs-fixer": "^2.16",
86-
"infection/infection": "^0.15|^0.16|^0.17|^0.18|^0.19|^0.20",
85+
"infection/infection": "^0.25",
8786
"matthiasnoback/symfony-config-test": "^3.1|^4.0",
8887
"nyholm/psr7": "^1.3",
8988
"php-http/mock-client": "^1.0",
@@ -93,15 +92,17 @@
9392
"phpstan/phpstan-phpunit": "^1.0",
9493
"phpstan/phpstan-strict-rules": "^1.0",
9594
"phpunit/phpunit": "^8.0|^9.0",
95+
"rector/rector": "^0.12.5",
9696
"roave/security-advisories": "dev-latest",
97-
"symfony/browser-kit": "^4.2|^5.0",
98-
"symfony/finder": "^4.2|^5.0",
99-
"symfony/framework-bundle": "^4.2|^5.0",
100-
"symfony/http-client": "^5.2",
101-
"symfony/phpunit-bridge": "^4.2|^5.0",
102-
"symfony/serializer": "^4.2|^5.0",
103-
"symfony/var-dumper": "^4.2|^5.0",
104-
"symfony/yaml": "^4.2|^5.0"
97+
"symfony/browser-kit": "^5.4|^6.0",
98+
"symfony/finder": "^5.4|^6.0",
99+
"symfony/framework-bundle": "^5.4|^6.0",
100+
"symfony/http-client": "^5.4|^6.0",
101+
"symfony/phpunit-bridge": "^5.4|^6.0",
102+
"symfony/serializer": "^5.4|^6.0",
103+
"symfony/var-dumper": "^5.4|^6.0",
104+
"symfony/yaml": "^5.4|^6.0",
105+
"symplify/easy-coding-standard": "^10.0"
105106
},
106107
"replace": {
107108
"web-token/jwt-easy": "self.version",

ecs.php

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use PhpCsFixer\Fixer\Alias\MbStrFunctionsFixer;
6+
use PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer;
7+
use PhpCsFixer\Fixer\ClassNotation\ProtectedToPrivateFixer;
8+
use PhpCsFixer\Fixer\Comment\HeaderCommentFixer;
9+
use PhpCsFixer\Fixer\ConstantNotation\NativeConstantInvocationFixer;
10+
use PhpCsFixer\Fixer\ControlStructure\NoSuperfluousElseifFixer;
11+
use PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer;
12+
use PhpCsFixer\Fixer\Import\GlobalNamespaceImportFixer;
13+
use PhpCsFixer\Fixer\Import\OrderedImportsFixer;
14+
use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveIssetsFixer;
15+
use PhpCsFixer\Fixer\LanguageConstruct\CombineConsecutiveUnsetsFixer;
16+
use PhpCsFixer\Fixer\Phpdoc\AlignMultilineCommentFixer;
17+
use PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer;
18+
use PhpCsFixer\Fixer\Phpdoc\PhpdocOrderFixer;
19+
use PhpCsFixer\Fixer\Phpdoc\PhpdocTrimConsecutiveBlankLineSeparationFixer;
20+
use PhpCsFixer\Fixer\PhpTag\LinebreakAfterOpeningTagFixer;
21+
use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestAnnotationFixer;
22+
use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestCaseStaticMethodCallsFixer;
23+
use PhpCsFixer\Fixer\PhpUnit\PhpUnitTestClassRequiresCoversFixer;
24+
use PhpCsFixer\Fixer\ReturnNotation\SimplifiedNullReturnFixer;
25+
use PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer;
26+
use PhpCsFixer\Fixer\Strict\StrictComparisonFixer;
27+
use PhpCsFixer\Fixer\Strict\StrictParamFixer;
28+
use PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer;
29+
use PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer;
30+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
31+
use Symplify\EasyCodingStandard\ValueObject\Option;
32+
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
33+
34+
$header = '';
35+
36+
return static function (ContainerConfigurator $containerConfigurator) use ($header): void {
37+
$containerConfigurator->import(SetList::PSR_12);
38+
$containerConfigurator->import(SetList::PHP_CS_FIXER);
39+
$containerConfigurator->import(SetList::PHP_CS_FIXER_RISKY);
40+
$containerConfigurator->import(SetList::CLEAN_CODE);
41+
$containerConfigurator->import(SetList::SYMFONY);
42+
$containerConfigurator->import(SetList::DOCTRINE_ANNOTATIONS);
43+
$containerConfigurator->import(SetList::SPACES);
44+
$containerConfigurator->import(SetList::PHPUNIT);
45+
$containerConfigurator->import(SetList::SYMPLIFY);
46+
$containerConfigurator->import(SetList::ARRAY);
47+
$containerConfigurator->import(SetList::COMMON);
48+
$containerConfigurator->import(SetList::COMMENTS);
49+
$containerConfigurator->import(SetList::CONTROL_STRUCTURES);
50+
$containerConfigurator->import(SetList::DOCBLOCK);
51+
$containerConfigurator->import(SetList::NAMESPACES);
52+
$containerConfigurator->import(SetList::STRICT);
53+
54+
$services = $containerConfigurator->services();
55+
$services->set(StrictParamFixer::class);
56+
$services->set(StrictComparisonFixer::class);
57+
$services->set(ArraySyntaxFixer::class)
58+
->call('configure', [[
59+
'syntax' => 'short',
60+
]])
61+
;
62+
$services->set(ArrayIndentationFixer::class);
63+
$services->set(OrderedImportsFixer::class);
64+
$services->set(ProtectedToPrivateFixer::class);
65+
$services->set(DeclareStrictTypesFixer::class);
66+
$services->set(NativeConstantInvocationFixer::class);
67+
$services->set(NativeFunctionInvocationFixer::class)
68+
->call('configure', [[
69+
'include' => ['@compiler_optimized'],
70+
'scope' => 'namespaced',
71+
'strict' => true,
72+
]])
73+
;
74+
$services->set(MbStrFunctionsFixer::class);
75+
$services->set(LinebreakAfterOpeningTagFixer::class);
76+
$services->set(CombineConsecutiveIssetsFixer::class);
77+
$services->set(CombineConsecutiveUnsetsFixer::class);
78+
$services->set(CompactNullableTypehintFixer::class);
79+
$services->set(NoSuperfluousElseifFixer::class);
80+
$services->set(NoSuperfluousPhpdocTagsFixer::class);
81+
$services->set(PhpdocTrimConsecutiveBlankLineSeparationFixer::class);
82+
$services->set(PhpdocOrderFixer::class);
83+
$services->set(SimplifiedNullReturnFixer::class);
84+
$services->set(HeaderCommentFixer::class)
85+
->call('configure', [[
86+
'header' => $header,
87+
]])
88+
;
89+
$services->set(AlignMultilineCommentFixer::class)
90+
->call('configure', [[
91+
'comment_type' => 'all_multiline',
92+
]])
93+
;
94+
$services->set(PhpUnitTestAnnotationFixer::class)
95+
->call('configure', [[
96+
'style' => 'annotation',
97+
]])
98+
;
99+
$services->set(PhpUnitTestCaseStaticMethodCallsFixer::class);
100+
$services->set(GlobalNamespaceImportFixer::class)
101+
->call('configure', [[
102+
'import_classes' => true,
103+
'import_constants' => true,
104+
'import_functions' => true,
105+
]])
106+
;
107+
108+
$services->remove(PhpUnitTestClassRequiresCoversFixer::class);
109+
110+
$parameters = $containerConfigurator->parameters();
111+
$parameters
112+
->set(Option::PARALLEL, true)
113+
->set(Option::PATHS, [__DIR__])
114+
->set(Option::SKIP, [
115+
__DIR__ . '/src/Kernel.php',
116+
__DIR__ . '/assets',
117+
__DIR__ . '/bin',
118+
__DIR__ . '/config',
119+
__DIR__ . '/heroku',
120+
__DIR__ . '/public',
121+
__DIR__ . '/var',
122+
])
123+
;
124+
};

infection.json.dist

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"source": {
3+
"directories": [
4+
"src"
5+
]
6+
},
7+
"logs": {
8+
"text": "infection.log"
9+
},
10+
"mutators": {
11+
"@default": true,
12+
"global-ignoreSourceCodeByRegex": [
13+
"\\$this->logger.*",
14+
"\\$this->cache->save.*",
15+
"parent::build(\\$container);"
16+
],
17+
"MBString": {
18+
"settings": {
19+
"mb_substr": false,
20+
"mb_strlen": false
21+
}
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)