Skip to content

Commit ea75a6d

Browse files
committed
feat: update to require PHP 8.2 or later
1 parent 5d4829a commit ea75a6d

21 files changed

+216
-72
lines changed

.github/workflows/phpstan.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Setup PHP
1717
uses: shivammathur/setup-php@v2
1818
with:
19-
php-version: '8.0'
19+
php-version: '8.2'
2020
coverage: none
2121

2222
- name: Install composer dependencies

.github/workflows/run-tests.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,9 @@ jobs:
1616
max-parallel: 1
1717
matrix:
1818
os: [ubuntu-latest, windows-latest]
19-
php: [8.0, 8.1]
20-
laravel: [8.*, 9.*]
19+
php: [8.2]
20+
laravel: [9.*]
2121
stability: [prefer-lowest, prefer-stable]
22-
include:
23-
- laravel: 8.*
24-
testbench: ^6.23
25-
- laravel: 9.*
26-
testbench: ^7.0
2722

2823
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
2924

@@ -45,7 +40,6 @@ jobs:
4540
4641
- name: Install dependencies
4742
run: |
48-
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
4943
composer update --${{ matrix.stability }} --prefer-dist --no-interaction
5044
5145
- name: Execute tests

composer.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
}
1717
],
1818
"require": {
19-
"php": "^8.0 || ^8.1",
20-
"illuminate/contracts": "^8.0 || ^9.0"
19+
"php": "^8.2",
20+
"illuminate/contracts": "^9.46"
2121
},
2222
"require-dev": {
23-
"nunomaduro/collision": "^5.10 || ^6.0",
24-
"nunomaduro/larastan": "^1.0 || ^2.0",
25-
"orchestra/testbench": "^6.22 || ^7.0",
23+
"nunomaduro/collision": "^6.0",
24+
"nunomaduro/larastan": "^2.0",
25+
"orchestra/testbench": "^7.0",
2626
"pestphp/pest": "^1.21",
2727
"pestphp/pest-plugin-laravel": "^1.1",
2828
"worksome/pest-plugin-silence": "^0.1",
29-
"worksome/coding-style": "0.17.0"
29+
"worksome/coding-style": "^2.0.0"
3030
},
3131
"autoload": {
3232
"psr-4": {
@@ -44,11 +44,11 @@
4444
}
4545
},
4646
"scripts": {
47-
"lint": "vendor/bin/phpcbf",
47+
"lint": "vendor/bin/ecs --fix",
4848
"test:unit": "vendor/bin/pest",
4949
"test:coverage": "vendor/bin/pest --coverage",
5050
"test:types": "vendor/bin/phpstan analyse",
51-
"test:style": "vendor/bin/phpcs -n",
51+
"test:style": "vendor/bin/ecs",
5252
"test": [
5353
"@test:style",
5454
"@test:types",

ecs.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Symplify\EasyCodingStandard\Config\ECSConfig;
6+
use Worksome\CodingStyle\WorksomeEcsConfig;
7+
8+
9+
return static function (ECSConfig $ecsConfig): void {
10+
$ecsConfig->paths([
11+
__DIR__ . '/src',
12+
__DIR__ . '/tests',
13+
__DIR__ . '/config',
14+
]);
15+
16+
WorksomeEcsConfig::setup($ecsConfig);
17+
};

phpcs.xml

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

phpstan-baseline.neon

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
parameters:
2+
ignoreErrors:
3+
-
4+
message: "#^PHPDoc tag @var for variable \\$result contains generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
5+
count: 1
6+
path: src/Actions/CreateFactoryResult.php
7+
8+
-
9+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\InvokeAfterCreatingHooks\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
10+
count: 1
11+
path: src/Actions/CreateFactoryResultSteps/InvokeAfterCreatingHooks.php
12+
13+
-
14+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\InvokeAfterCreatingHooks\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
15+
count: 2
16+
path: src/Actions/CreateFactoryResultSteps/InvokeAfterCreatingHooks.php
17+
18+
-
19+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\InvokeAfterCreatingHooks\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
20+
count: 1
21+
path: src/Actions/CreateFactoryResultSteps/InvokeAfterCreatingHooks.php
22+
23+
-
24+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RecursiveStep\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
25+
count: 1
26+
path: src/Actions/CreateFactoryResultSteps/RecursiveStep.php
27+
28+
-
29+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RecursiveStep\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
30+
count: 2
31+
path: src/Actions/CreateFactoryResultSteps/RecursiveStep.php
32+
33+
-
34+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RecursiveStep\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
35+
count: 1
36+
path: src/Actions/CreateFactoryResultSteps/RecursiveStep.php
37+
38+
-
39+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RemoveWithout\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
40+
count: 1
41+
path: src/Actions/CreateFactoryResultSteps/RemoveWithout.php
42+
43+
-
44+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RemoveWithout\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
45+
count: 2
46+
path: src/Actions/CreateFactoryResultSteps/RemoveWithout.php
47+
48+
-
49+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\RemoveWithout\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
50+
count: 1
51+
path: src/Actions/CreateFactoryResultSteps/RemoveWithout.php
52+
53+
-
54+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveClosures\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
55+
count: 1
56+
path: src/Actions/CreateFactoryResultSteps/ResolveClosures.php
57+
58+
-
59+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveClosures\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
60+
count: 2
61+
path: src/Actions/CreateFactoryResultSteps/ResolveClosures.php
62+
63+
-
64+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveClosures\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
65+
count: 1
66+
path: src/Actions/CreateFactoryResultSteps/ResolveClosures.php
67+
68+
-
69+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveModelFactories\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
70+
count: 1
71+
path: src/Actions/CreateFactoryResultSteps/ResolveModelFactories.php
72+
73+
-
74+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveModelFactories\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
75+
count: 2
76+
path: src/Actions/CreateFactoryResultSteps/ResolveModelFactories.php
77+
78+
-
79+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveModelFactories\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
80+
count: 1
81+
path: src/Actions/CreateFactoryResultSteps/ResolveModelFactories.php
82+
83+
-
84+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveNestedRequestFactories\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
85+
count: 1
86+
path: src/Actions/CreateFactoryResultSteps/ResolveNestedRequestFactories.php
87+
88+
-
89+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveNestedRequestFactories\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
90+
count: 2
91+
path: src/Actions/CreateFactoryResultSteps/ResolveNestedRequestFactories.php
92+
93+
-
94+
message: "#^Method Worksome\\\\RequestFactories\\\\Actions\\\\CreateFactoryResultSteps\\\\ResolveNestedRequestFactories\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
95+
count: 1
96+
path: src/Actions/CreateFactoryResultSteps/ResolveNestedRequestFactories.php
97+
98+
-
99+
message: "#^Class Worksome\\\\RequestFactories\\\\Actions\\\\UndotArrayKeys implements generic interface Worksome\\\\RequestFactories\\\\Contracts\\\\Actions\\\\UndotsArrayKeys but does not specify its types\\: TValue$#"
100+
count: 1
101+
path: src/Actions/UndotArrayKeys.php
102+
103+
-
104+
message: "#^Method Worksome\\\\RequestFactories\\\\Contracts\\\\Actions\\\\CreateFactoryResultStep\\:\\:handle\\(\\) has parameter \\$data with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
105+
count: 1
106+
path: src/Contracts/Actions/CreateFactoryResultStep.php
107+
108+
-
109+
message: "#^Method Worksome\\\\RequestFactories\\\\Contracts\\\\Actions\\\\CreateFactoryResultStep\\:\\:handle\\(\\) has parameter \\$next with generic class Illuminate\\\\Support\\\\Collection but does not specify its types\\: TKey, TValue$#"
110+
count: 2
111+
path: src/Contracts/Actions/CreateFactoryResultStep.php
112+
113+
-
114+
message: "#^Method Worksome\\\\RequestFactories\\\\Contracts\\\\Actions\\\\CreateFactoryResultStep\\:\\:handle\\(\\) return type with generic class Illuminate\\\\Support\\\\Collection does not specify its types\\: TKey, TValue$#"
115+
count: 1
116+
path: src/Contracts/Actions/CreateFactoryResultStep.php
117+
118+
-
119+
message: "#^Method Worksome\\\\RequestFactories\\\\RequestFactory\\:\\:getUndotsArrayKeysAction\\(\\) return type with generic interface Worksome\\\\RequestFactories\\\\Contracts\\\\Actions\\\\UndotsArrayKeys does not specify its types\\: TValue$#"
120+
count: 1
121+
path: src/RequestFactory.php
122+
123+
-
124+
message: "#^Class Worksome\\\\RequestFactories\\\\Support\\\\Result implements generic interface ArrayAccess but does not specify its types\\: TKey, TValue$#"
125+
count: 1
126+
path: src/Support/Result.php
127+
128+
-
129+
message: "#^Class Worksome\\\\RequestFactories\\\\Support\\\\Result implements generic interface Illuminate\\\\Contracts\\\\Support\\\\Arrayable but does not specify its types\\: TKey, TValue$#"
130+
count: 1
131+
path: src/Support/Result.php
132+
133+
-
134+
message: "#^Class Worksome\\\\RequestFactories\\\\Support\\\\Result implements generic interface IteratorAggregate but does not specify its types\\: TKey, TValue$#"
135+
count: 1
136+
path: src/Support/Result.php

rector.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Rector\Config\RectorConfig;
6+
use Worksome\CodingStyle\WorksomeRectorConfig;
7+
8+
return static function (RectorConfig $rectorConfig): void {
9+
WorksomeRectorConfig::setup($rectorConfig);
10+
11+
$rectorConfig->paths([
12+
__DIR__ . '/src',
13+
__DIR__ . '/tests',
14+
]);
15+
16+
// Define extra rule sets to be applied
17+
$rectorConfig->sets([
18+
// SetList::DEAD_CODE,
19+
]);
20+
21+
// Register extra a single rules
22+
// $rectorConfig->rule(ClassOnObjectRector::class);
23+
};

renovate.json

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

src/Actions/CreateFactoryResultSteps/InvokeAfterCreatingHooks.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public function __construct(private array $hooks)
1717
public function handle(Collection $data, Closure $next): Collection
1818
{
1919
$data = collect($this->hooks)->reduce(
20-
// @phpstan-ignore-next-line
2120
fn ($latestAttributes, Closure $closure) => $closure($latestAttributes) ?? $latestAttributes,
2221
$data->all(),
2322
);

src/Actions/CreateFactoryResultSteps/RecursiveStep.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function handle(Collection $data, Closure $next): Collection
2929

3030
private function walk(mixed $data): mixed
3131
{
32-
if (!is_array($data)) {
32+
if (! is_array($data)) {
3333
return $data;
3434
}
3535

src/Actions/UndotArrayKeys.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ private function replaceEscapedDotsWithPlaceholder(array $array): array
4747

4848
private function replacePlaceholderWithDots(array $array): array
4949
{
50-
$keys = array_map(fn ($key) => is_int($key) ? $key : str_replace($this->placeholder, '.', $key), array_keys($array));
50+
$keys = array_map(
51+
fn ($key) => is_int($key) ? $key : str_replace($this->placeholder, '.', $key),
52+
array_keys($array)
53+
);
5154

5255
return array_combine($keys, $array);
5356
}

src/Concerns/Pest/FakesRequests.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ trait FakesRequests
1313
{
1414
/**
1515
* @param class-string<FormRequest>|class-string<RequestFactory>|Closure(): RequestFactory $request
16-
* @param array<mixed> $attributes
16+
* @param array<mixed> $attributes
1717
*/
1818
public function fakeRequest(string|Closure $request, array $attributes = []): HigherOrderRequestFactory
1919
{

src/Contracts/Actions/CreateFactoryResultStep.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
interface CreateFactoryResultStep
1111
{
1212
/**
13-
* @param Collection<mixed> $data
13+
* @param Collection<mixed> $data
1414
* @param Closure(Collection<mixed>): Collection<mixed> $next
15+
*
1516
* @return Collection<mixed>
1617
*/
1718
public function handle(Collection $data, Closure $next): Collection;

src/Contracts/Actions/UndotsArrayKeys.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ interface UndotsArrayKeys
1111
{
1212
/**
1313
* @param array<TValue> $array
14+
*
1415
* @return array<TValue>
1516
*/
1617
public function __invoke(array $array): array;

src/RequestFactory.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ abstract class RequestFactory
2626
protected Generator $faker;
2727

2828
/**
29-
* @param array<mixed> $attributes
29+
* @param array<mixed> $attributes
3030
* @param array<Closure(array): array|void> $afterCreatingHooks
3131
*/
3232
final public function __construct(
@@ -135,6 +135,7 @@ public function afterCreating(Closure $callback): static
135135
* passed as data to a request.
136136
*
137137
* @param array<mixed> $attributes
138+
*
138139
* @return array<mixed>
139140
*/
140141
public function create(array $attributes = []): array
@@ -155,6 +156,7 @@ public function fake(): void
155156

156157
/**
157158
* @param string|null $name
159+
*
158160
* @return FileFactory|File
159161
*/
160162
protected function file(string $name = null): FileFactory|File

src/Support/FactoryData.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
final class FactoryData
1313
{
1414
/**
15-
* @param array<mixed> $definition
16-
* @param array<mixed> $files
17-
* @param array<mixed> $attributes
18-
* @param array<int, string> $without
15+
* @param array<mixed> $definition
16+
* @param array<mixed> $files
17+
* @param array<mixed> $attributes
18+
* @param array<int, string> $without
1919
* @param array<Closure(array): array|void> $afterCreatingHooks
2020
*/
2121
public function __construct(

0 commit comments

Comments
 (0)