Code Duplication    Length = 68-68 lines in 2 locations

src/Console/DbCreateCommand.php 1 location

@@ 14-81 (lines=68) @@
11
};
12
use Illuminate\Console\Command;
13
14
class DbCreateCommand extends Command
15
{
16
    /**
17
     * The name and signature of the console command.
18
     *
19
     * @var string
20
     */
21
    protected $signature = 'db:create
22
        {--dry-run}
23
        {--database= : The database name to test}
24
    ';
25
26
    /**
27
     * The console command description.
28
     *
29
     * @var string
30
     */
31
    protected $description = 'Creates the database.';
32
33
    /**
34
     * Create a new command instance.
35
     *
36
     * @return void
37
     */
38
    public function __construct()
39
    {
40
        parent::__construct();
41
    }
42
43
    /**
44
     * Execute the console command.
45
     *
46
     * @return mixed
47
     */
48
    public function handle(GrammarFactory $grammars)
49
    {
50
        $dryRun = (bool) $this->option('dry-run');
51
52
        if ($dryRun) {
53
            $this->info('[DRY] Running in dry-run.');
54
        }
55
56
        $connection = config('database.default');
57
        $configs = config(sprintf('database.connections.%s', $connection));
58
        $configs['database'] = $this->option('database') ?: $configs['database'];
59
60
        $builder = new Builder(
61
            $this->makeConnector($configs, $dryRun),
62
            $grammars
63
        );
64
65
        if ($builder->createDatabase($configs) === false) {
66
            $this->error('Could not create the database.');
67
            return 1;
68
        }
69
70
        $this->info(sprintf('Database "%s" created successfully.', $configs['database']));
71
    }
72
73
    private function makeConnector(array $configs, bool $dryRun = false): Connector
74
    {
75
        if ($dryRun === true) {
76
            return new DryRunConnector($this->output);
77
        }
78
79
        return PDOConnector::make($configs);
80
    }
81
}
82

src/Console/DbDropCommand.php 1 location

@@ 14-81 (lines=68) @@
11
};
12
use Illuminate\Console\Command;
13
14
class DbDropCommand extends Command
15
{
16
    /**
17
     * The name and signature of the console command.
18
     *
19
     * @var string
20
     */
21
    protected $signature = 'db:drop
22
        {--dry-run}
23
        {--database= : The database name}
24
    ';
25
26
    /**
27
     * The console command description.
28
     *
29
     * @var string
30
     */
31
    protected $description = 'Drops the database.';
32
33
    /**
34
     * Create a new command instance.
35
     *
36
     * @return void
37
     */
38
    public function __construct()
39
    {
40
        parent::__construct();
41
    }
42
43
    /**
44
     * Execute the console command.
45
     *
46
     * @return mixed
47
     */
48
    public function handle(GrammarFactory $grammars)
49
    {
50
        $dryRun = (bool) $this->option('dry-run');
51
52
        if ($dryRun) {
53
            $this->info('[DRY] Running in dry-run.');
54
        }
55
56
        $connection = config('database.default');
57
        $configs = config(sprintf('database.connections.%s', $connection));
58
        $configs['database'] = $this->option('database') ?: $configs['database'];
59
60
        $builder = new Builder(
61
            $this->makeConnector($configs, $dryRun),
62
            $grammars
63
        );
64
65
        if ($builder->dropDatabase($configs) === false) {
66
            $this->error('Could not drop the database.');
67
            return 1;
68
        }
69
70
        $this->info(sprintf('Database "%s" drop successfully.', $configs['database']));
71
    }
72
73
    private function makeConnector(array $configs, bool $dryRun = false): Connector
74
    {
75
        if ($dryRun === true) {
76
            return new DryRunConnector($this->output);
77
        }
78
79
        return PDOConnector::make($configs);
80
    }
81
}
82