Passed
Pull Request — 3.x (#1388)
by Harings
15:34
created

LaravelAwareRectorRule::getLaravel()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 13
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 22
rs 9.8333
1
<?php
2
3
namespace A17\Twill\Rector;
4
5
use Illuminate\Foundation\Application;
6
use Illuminate\Support\Facades\Route;
7
use Illuminate\Support\Str;
8
use PhpParser\BuilderHelpers;
9
use PhpParser\Node;
10
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
11
use Rector\Core\Rector\AbstractRector;
12
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
13
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
14
15
abstract class LaravelAwareRectorRule extends AbstractRector implements ConfigurableRectorInterface
16
{
17
    public $baseDir = null;
18
19
    public function configure(array $configuration): void
20
    {
21
        $this->baseDir = $configuration['path'] ?? getcwd();
22
    }
23
24
    protected function getLaravel(): Application
25
    {
26
        $app = new Application($this->baseDir);
27
        $app->singleton(
28
            \Illuminate\Contracts\Http\Kernel::class,
29
            \App\Http\Kernel::class
30
        );
31
32
        $app->singleton(
33
            \Illuminate\Contracts\Console\Kernel::class,
34
            \App\Console\Kernel::class
35
        );
36
37
        $app->singleton(
38
            \Illuminate\Contracts\Debug\ExceptionHandler::class,
39
            \App\Exceptions\Handler::class
40
        );
41
42
        $kernel = $app->make(\Illuminate\Contracts\Console\Kernel::class);
43
        $kernel->bootstrap();
44
45
        return $app;
46
    }
47
}
48