Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
40.00% covered (warning)
40.00%
2 / 5
CRAP
87.50% covered (success)
87.50%
28 / 32
DockerServiceProvider
0.00% covered (danger)
0.00%
0 / 1
40.00% covered (warning)
40.00%
2 / 5
5.05
87.50% covered (success)
87.50%
28 / 32
 boot
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 register
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
4 / 4
 registerDockerLauncherCommand
0.00% covered (danger)
0.00%
0 / 1
1.00
85.71% covered (success)
85.71%
6 / 7
 registerDockerDeleteServiceCommand
0.00% covered (danger)
0.00%
0 / 1
1.00
85.71% covered (success)
85.71%
6 / 7
 registerDockerProvides
0.00% covered (danger)
0.00%
0 / 1
1.01
81.82% covered (success)
81.82%
9 / 11
1<?php
2
3namespace Qmp\Laravel\DockerLauncher\Providers;
4
5use Illuminate\Support\ServiceProvider;
6use Qmp\Laravel\DockerLauncher\Console\DockerLauncher;
7use Qmp\Laravel\DockerLauncher\Docker;
8use Qmp\Laravel\DockerLauncher\Docker\DockerConfig;
9use Qmp\Laravel\DockerLauncher\Docker\Output;
10use Docker\Docker as DockerClient;
11use Qmp\Laravel\DockerLauncher\Console\DockerDeleteService;
12
13class 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}