1 | <?php |
||
2 | declare(strict_types=1); |
||
3 | |||
4 | namespace Cart; |
||
5 | |||
6 | use Cart\Contracts\CartDriverContract; |
||
7 | use Cart\Contracts\ServiceProviderContract; |
||
8 | use Cart\Contracts\SourceConfiguration; |
||
9 | use Illuminate\Container\Container; |
||
10 | use Illuminate\Config\Repository; |
||
11 | use Symfony\Component\Finder\Finder; |
||
12 | |||
13 | /** |
||
14 | * Class Kernel |
||
15 | * |
||
16 | * @package Cart |
||
17 | */ |
||
18 | class Kernel |
||
19 | { |
||
20 | /** |
||
21 | * @var Container |
||
22 | */ |
||
23 | protected $app; |
||
24 | |||
25 | protected $coreServices = [ |
||
26 | 'config.singleton' => Repository::class, |
||
27 | ]; |
||
28 | |||
29 | 5 | public function __construct() |
|
30 | { |
||
31 | 5 | $this->app = Container::getInstance(); |
|
32 | 5 | } |
|
33 | |||
34 | 3 | public function bootstrapping() : void |
|
35 | { |
||
36 | 3 | $this->loadCoreServiceProvider(); |
|
37 | 3 | } |
|
38 | |||
39 | /** |
||
40 | * Get type storage (Note: in config file) |
||
41 | */ |
||
42 | 1 | public function getStorage() : CartDriverContract |
|
43 | { |
||
44 | 1 | return $this->app->make(config('cart.storage')); |
|
45 | } |
||
46 | |||
47 | /** |
||
48 | * Get all of the configuration files for the application. |
||
49 | * @param SourceConfiguration $configuration |
||
50 | */ |
||
51 | 1 | public function loadConfiguration(SourceConfiguration $configuration) : void |
|
52 | { |
||
53 | 1 | config()->set($configuration->getName(), $configuration->get()); |
|
0 ignored issues
–
show
|
|||
54 | 1 | } |
|
55 | |||
56 | /** |
||
57 | * Load service provider from config file |
||
58 | */ |
||
59 | 1 | public function loadServiceProvider() : void |
|
60 | { |
||
61 | 1 | foreach (config('cart.services') as $services) { |
|
62 | /** @var ServiceProviderContract */ |
||
63 | 1 | (new $services)->register($this->app); |
|
64 | } |
||
65 | 1 | } |
|
66 | |||
67 | /** |
||
68 | * Load mandatory services for application |
||
69 | */ |
||
70 | 3 | protected function loadCoreServiceProvider() : void |
|
71 | { |
||
72 | 3 | foreach ($this->coreServices as $abstract => $service) { |
|
73 | 3 | list($abstract, $type) = explode('.', $abstract); |
|
74 | |||
75 | 3 | if (app()->resolved($abstract) === false) { |
|
76 | 1 | if ($type == 'singleton') { |
|
77 | 1 | $this->app->singleton($abstract, $service); |
|
78 | } |
||
79 | } |
||
80 | } |
||
81 | 3 | } |
|
82 | } |
||
83 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.