Completed
Push — master ( da89f6...8759f3 )
by recca
01:28
created

Mysql::handle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 8
ccs 5
cts 5
cp 1
crap 1
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Recca0120\Terminal\Console\Commands;
4
5
use Illuminate\Support\Arr;
6
use Illuminate\Console\Command;
7
use Illuminate\Database\DatabaseManager;
8
use Symfony\Component\Console\Input\InputOption;
9
10
class Mysql extends Command
11
{
12
    /**
13
     * The console command name.
14
     *
15
     * @var string
16
     */
17
    protected $name = 'mysql';
18
19
    /**
20
     * The console command description.
21
     *
22
     * @var string
23
     */
24
    protected $description = 'mysql console';
25
26
    /**
27
     * $connection.
28
     *
29
     * @var \Illuminate\Database\DatabaseManager
30
     */
31
    protected $databaseManager;
32
33
    /**
34
     * __construct.
35
     *
36
     * @param \Illuminate\Database\DatabaseManager $databaseManager
37
     */
38 1
    public function __construct(DatabaseManager $databaseManager)
39
    {
40 1
        parent::__construct();
41 1
42 1
        $this->databaseManager = $databaseManager;
43
    }
44
45
    /**
46
     * Handle the command.
47 1
     *
48
     * @throws \InvalidArgumentException
49 1
     */
50 1
    public function handle()
51 1
    {
52 1
        $query = $this->option('command');
53 1
        $connection = $this->databaseManager->connection();
54 1
        $rows = json_decode(json_encode($connection->select($query)), true);
55
        $headers = array_keys(Arr::get($rows, 0, []));
56
        $this->table($headers, $rows);
57
    }
58
59
    /**
60
     * Get the console command options.
61 1
     *
62
     * @return array
63
     */
64 1
    protected function getOptions()
65 1
    {
66
        return [
67
            ['command', null, InputOption::VALUE_OPTIONAL],
68
        ];
69
    }
70
}
71