Skip to content

Commit a7306b9

Browse files
authored
Adds a set provider class (#248)
1 parent 3ec89de commit a7306b9

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

src/Set/LaravelSetProvider.php

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
<?php
2+
3+
namespace RectorLaravel\Set;
4+
5+
use Rector\Set\Contract\SetProviderInterface;
6+
use Rector\Set\ValueObject\Set;
7+
use RectorLaravel\Set\Packages\Livewire\LivewireSetList;
8+
9+
final class LaravelSetProvider implements SetProviderInterface
10+
{
11+
private const GROUP_NAME = 'laravel';
12+
13+
/**
14+
* @var string[]
15+
*/
16+
private const LARAVEL_FIVE = [
17+
LaravelSetList::LARAVEL_50,
18+
LaravelSetList::LARAVEL_51,
19+
LaravelSetList::LARAVEL_52,
20+
LaravelSetList::LARAVEL_53,
21+
LaravelSetList::LARAVEL_54,
22+
LaravelSetList::LARAVEL_55,
23+
LaravelSetList::LARAVEL_56,
24+
LaravelSetList::LARAVEL_57,
25+
LaravelSetList::LARAVEL_58,
26+
];
27+
28+
/**
29+
* @var string[]
30+
*/
31+
private const LARAVEL_POST_FIVE = [
32+
LaravelSetList::LARAVEL_60,
33+
LaravelSetList::LARAVEL_70,
34+
LaravelSetList::LARAVEL_80,
35+
LaravelSetList::LARAVEL_90,
36+
LaravelSetList::LARAVEL_100,
37+
LaravelSetList::LARAVEL_110,
38+
];
39+
40+
public function provide(): array
41+
{
42+
return [
43+
new Set(
44+
self::GROUP_NAME,
45+
'array/str func to static calls',
46+
LaravelSetList::ARRAY_STR_FUNCTIONS_TO_STATIC_CALL
47+
),
48+
new Set(self::GROUP_NAME, 'Code quality', LaravelSetList::LARAVEL_CODE_QUALITY),
49+
new Set(
50+
self::GROUP_NAME,
51+
'Container strings to FQN types',
52+
LaravelSetList::LARAVEL_CONTAINER_STRING_TO_FULLY_QUALIFIED_NAME,
53+
),
54+
new Set(
55+
'Laravel Code Quality',
56+
'array/str functions to static calls',
57+
LaravelSetList::ARRAY_STR_FUNCTIONS_TO_STATIC_CALL
58+
),
59+
new Set(self::GROUP_NAME, 'Code quality', LaravelSetList::LARAVEL_CODE_QUALITY),
60+
new Set(
61+
self::GROUP_NAME,
62+
'Container strings to FQN types',
63+
LaravelSetList::LARAVEL_CONTAINER_STRING_TO_FULLY_QUALIFIED_NAME,
64+
),
65+
new Set(
66+
self::GROUP_NAME,
67+
'Code Quality for Laravel',
68+
LaravelSetList::LARAVEL_CODE_QUALITY,
69+
),
70+
new Set(
71+
self::GROUP_NAME,
72+
'Replaces If statements with helpers',
73+
LaravelSetList::LARAVEL_IF_HELPERS,
74+
),
75+
new Set(
76+
self::GROUP_NAME,
77+
'Replace facades with service injection',
78+
LaravelSetList::LARAVEL_STATIC_TO_INJECTION,
79+
),
80+
new Set(
81+
self::GROUP_NAME,
82+
'Rename Alias to FQN Classes',
83+
LaravelSetList::LARAVEL_FACADE_ALIASES_TO_FULL_NAMES,
84+
),
85+
new Set(
86+
self::GROUP_NAME,
87+
'Replace Magic Methods to Query Builder',
88+
LaravelSetList::LARAVEL_ELOQUENT_MAGIC_METHOD_TO_QUERY_BUILDER,
89+
),
90+
new Set(
91+
self::GROUP_NAME,
92+
'Upgrade Legacy Factories to Modern Factories',
93+
LaravelSetList::LARAVEL_LEGACY_FACTORIES_TO_CLASSES,
94+
),
95+
new Set(
96+
self::GROUP_NAME,
97+
'Livewire 3.0',
98+
LivewireSetList::LIVEWIRE_30,
99+
),
100+
...$this->getLaravelVersions(),
101+
];
102+
}
103+
104+
/**
105+
* @return Set[]
106+
*/
107+
private function getLaravelVersions(): array
108+
{
109+
$versions = [];
110+
111+
foreach (self::LARAVEL_FIVE as $index => $version) {
112+
$versions[] = new Set(
113+
self::GROUP_NAME,
114+
'Laravel Framework 5.' . $index,
115+
$version,
116+
);
117+
}
118+
119+
foreach (self::LARAVEL_POST_FIVE as $index => $version) {
120+
$versions[] = new Set(
121+
self::GROUP_NAME,
122+
'Laravel Framework ' . ($index + 6) . '.0',
123+
$version,
124+
);
125+
}
126+
127+
return $versions;
128+
}
129+
}

0 commit comments

Comments
 (0)