-
-
Notifications
You must be signed in to change notification settings - Fork 283
/
Copy pathPreset.php
90 lines (81 loc) · 2.77 KB
/
Preset.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
declare(strict_types=1);
namespace NunoMaduro\PhpInsights\Application\Adapters\Laravel;
use NunoMaduro\PhpInsights\Application\Composer;
use NunoMaduro\PhpInsights\Application\ConfigResolver;
use NunoMaduro\PhpInsights\Application\DefaultPreset;
use NunoMaduro\PhpInsights\Domain\Contracts\Preset as PresetContract;
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenDefineGlobalConstants;
use NunoMaduro\PhpInsights\Domain\Sniffs\ForbiddenSetterSniff;
use PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\ForbiddenFunctionsSniff;
use PhpCsFixer\Fixer\ClassNotation\ProtectedToPrivateFixer;
use PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer;
use SlevomatCodingStandard\Sniffs\Functions\StaticClosureSniff;
/**
* @internal
*/
final class Preset implements PresetContract
{
public static function getName(): string
{
return 'laravel';
}
public static function get(Composer $composer): array
{
$config = [
'exclude' => [
'config',
'storage',
'resources',
'bootstrap',
'nova',
'database',
'server.php',
'_ide_helper.php',
'_ide_helper_models.php',
'app/Providers/TelescopeServiceProvider.php',
'public',
],
'add' => [
// ...
],
'remove' => [
ProtectedToPrivateFixer::class,
VoidReturnFixer::class,
StaticClosureSniff::class,
],
'config' => [
ForbiddenDefineGlobalConstants::class => [
'ignore' => ['LARAVEL_START'],
],
ForbiddenFunctionsSniff::class => [
'forbiddenFunctions' => [
'dd' => null,
'dump' => null,
'ddd' => null,
'tinker' => null,
],
],
ForbiddenSetterSniff::class => [
'allowedMethodRegex' => [
'/^set.*?Attribute$/',
],
],
],
];
return ConfigResolver::mergeConfig(DefaultPreset::get($composer), $config);
}
public static function shouldBeApplied(Composer $composer): bool
{
$requirements = $composer->getRequirements();
foreach (array_keys($requirements) as $requirement) {
if (strpos($requirement, 'laravel/framework') !== false) {
return true;
}
if (strpos($requirement, 'illuminate/') !== false) {
return true;
}
}
return $composer->getName() === 'laravel/framework';
}
}