Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
CRAP | |
87.50% |
28 / 32 |
DockerServiceProvider | |
0.00% |
0 / 1 |
|
40.00% |
2 / 5 |
5.05 | |
87.50% |
28 / 32 |
boot | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
register | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
registerDockerLauncherCommand | |
0.00% |
0 / 1 |
1.00 | |
85.71% |
6 / 7 |
|||
registerDockerDeleteServiceCommand | |
0.00% |
0 / 1 |
1.00 | |
85.71% |
6 / 7 |
|||
registerDockerProvides | |
0.00% |
0 / 1 |
1.01 | |
81.82% |
9 / 11 |
1 | <?php |
2 | |
3 | namespace Qmp\Laravel\DockerLauncher\Providers; |
4 | |
5 | use Illuminate\Support\ServiceProvider; |
6 | use Qmp\Laravel\DockerLauncher\Console\DockerLauncher; |
7 | use Qmp\Laravel\DockerLauncher\Docker; |
8 | use Qmp\Laravel\DockerLauncher\Docker\DockerConfig; |
9 | use Qmp\Laravel\DockerLauncher\Docker\Output; |
10 | use Docker\Docker as DockerClient; |
11 | use Qmp\Laravel\DockerLauncher\Console\DockerDeleteService; |
12 | |
13 | class DockerServiceProvider extends ServiceProvider |
14 | { |
15 | /** |
16 | * The middleware aliases. |
17 | * |
18 | * @var array |
19 | */ |
20 | /*protected $middlewareAliases = [ |
21 | 'jwt.auth' => Authenticate::class, |
22 | 'jwt.check' => Check::class, |
23 | 'jwt.refresh' => RefreshToken::class, |
24 | 'jwt.renew' => AuthenticateAndRenew::class, |
25 | ];*/ |
26 | /** |
27 | * Boot the service provider. |
28 | * |
29 | * @return void |
30 | */ |
31 | public function boot() |
32 | { |
33 | $path = realpath(__DIR__.'/../../config/config.php'); |
34 | $this->mergeConfigFrom($path, 'docker'); |
35 | } |
36 | |
37 | /** |
38 | * Register the service provider. |
39 | * |
40 | * @return void |
41 | */ |
42 | public function register() |
43 | { |
44 | $this->registerDockerProvides(); |
45 | |
46 | $this->registerDockerLauncherCommand(); |
47 | $this->registerDockerDeleteServiceCommand(); |
48 | } |
49 | |
50 | /** |
51 | * Register the Artisan command. |
52 | * |
53 | * @return void |
54 | */ |
55 | protected function registerDockerLauncherCommand() |
56 | { |
57 | $this->app->singleton(DockerLauncher::class, function ($app) { |
58 | return new DockerLauncher($app->make('qmp.docker.runner'), config('docker')); |
59 | }); |
60 | |
61 | $this->app->singleton('qmp.docker.launcher', function ($app) { |
62 | return new DockerLauncher($app->make('qmp.docker.runner'), config('docker')); |
63 | }); |
64 | } |
65 | |
66 | /** |
67 | * Register the Artisan command. |
68 | * |
69 | * @return void |
70 | */ |
71 | protected function registerDockerDeleteServiceCommand() |
72 | { |
73 | $this->app->singleton(DockerDeleteService::class, function ($app) { |
74 | return new DockerDeleteService($app->make('qmp.docker.runner'), $app->make('qmp.docker.config')); |
75 | }); |
76 | |
77 | $this->app->singleton('qmp.docker.delete.service', function ($app) { |
78 | return new DockerDeleteService($app->make('qmp.docker.runner'), $app->make('qmp.docker.config')); |
79 | }); |
80 | } |
81 | |
82 | /** |
83 | * Register the Docker classes. |
84 | * |
85 | * @return void |
86 | */ |
87 | protected function registerDockerProvides() |
88 | { |
89 | $this->app->singleton('qmp.docker.output', function () { |
90 | $output = new \Symfony\Component\Console\Output\ConsoleOutput(); |
91 | return new Output($output); |
92 | }); |
93 | |
94 | $this->app->singleton('qmp.docker.config', function ($app) { |
95 | return (new DockerConfig(config('docker'))); |
96 | }); |
97 | |
98 | $this->app->singleton('qmp.docker.runner', function ($app) { |
99 | return (new Docker($app->make('qmp.docker.config'), DockerClient::create())); |
100 | }); |
101 | } |
102 | } |