Completed
Push — master ( b92470...5197c4 )
by Nicolas
60:52 queued 58:20
created

DisableCommand   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 22.22%

Importance

Changes 0
Metric Value
dl 0
loc 73
ccs 2
cts 9
cp 0.2222
rs 10
c 0
b 0
f 0
wmc 7
lcom 1
cbo 2

3 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 20 3
A disableAll() 0 15 3
A getArguments() 0 6 1
1
<?php
2
3
namespace Nwidart\Modules\Commands;
4
5
use Illuminate\Console\Command;
6
use Nwidart\Modules\Module;
7
use Symfony\Component\Console\Input\InputArgument;
8
9
class DisableCommand extends Command
10
{
11
    /**
12
     * The console command name.
13
     *
14
     * @var string
15
     */
16
    protected $name = 'module:disable';
17
18
    /**
19
     * The console command description.
20
     *
21
     * @var string
22
     */
23
    protected $description = 'Disable the specified module.';
24
25
    /**
26
     * Execute the console command.
27
     */
28
    public function handle()
29
    {
30
        /**
31
         * check if user entred an argument
32
         */
33
        if ($this->argument('module') === null) {
34
            $this->disableAll();
35
        }
36
37
        /** @var Module $module */
38
        $module = $this->laravel['modules']->findOrFail($this->argument('module'));
39
40
        if ($module->isEnabled()) {
41
            $module->disable();
42
43
            $this->info("Module [{$module}] disabled successful.");
44
        } else {
45
            $this->comment("Module [{$module}] has already disabled.");
46
        }
47 127
    }
48
49
    /**
50 127
     * disableAll
51
     *
52
     * @return void
53
     */
54
    public function disableAll()
55
    {
56
        /** @var Modules $modules */
57
        $modules = $this->laravel['modules']->all();
58
59
        foreach ($modules as $module) {
60
            if ($module->isEnabled()) {
61
                $module->disable();
62
63
                $this->info("Module [{$module}] disabled successful.");
64
            } else {
65
                $this->comment("Module [{$module}] has already disabled.");
66
            }
67
        }
68
    }
69
70
    /**
71
     * Get the console command arguments.
72
     *
73
     * @return array
74
     */
75
    protected function getArguments()
76
    {
77
        return [
78
            ['module', InputArgument::OPTIONAL, 'Module name.'],
79
        ];
80
    }
81
}
82