Completed
Push — master ( fbc8ed...eba658 )
by Song
05:28
created

InstallCommand::createExampleController()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 11
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 1
b 0
f 0
nc 1
nop 0
dl 11
loc 11
rs 9.4285
1
<?php
2
3
namespace Encore\Admin\Commands;
4
5
use Encore\Admin\Facades\Admin;
6
use Illuminate\Console\Command;
7
8
class InstallCommand extends Command
9
{
10
    /**
11
     * The console command name.
12
     *
13
     * @var string
14
     */
15
    protected $name = 'admin:install';
16
17
    /**
18
     * The console command description.
19
     *
20
     * @var string
21
     */
22
    protected $description = 'Install the admin package';
23
24
    /**
25
     * @var string
26
     */
27
    protected $directory = '';
28
29
    /**
30
     * Execute the console command.
31
     *
32
     * @return void
33
     */
34
    public function fire()
35
    {
36
        $this->publishDatabase();
37
38
        $this->initAdminDirectory();
39
    }
40
41
    /**
42
     * Create tables and seed it.
43
     *
44
     * @return void
45
     */
46
    public function publishDatabase()
47
    {
48
        $this->call('migrate', ['--path' => str_replace(base_path(), '', __DIR__).'/../../migrations/']);
49
50
        $this->call('db:seed', ['--class' => \Encore\Admin\Auth\Database\AdminTablesSeeder::class]);
51
    }
52
53
    /**
54
     * Initialize the admin directory.
55
     *
56
     * @return void
57
     */
58
    protected function initAdminDirectory()
59
    {
60
        $this->directory = config('admin.directory');
61
62
        if (is_dir($this->directory)) {
63
            $this->line("<error>{$this->directory} directory already exists !</error> ");
64
65
            return;
66
        }
67
68
        $this->makeDir('/');
69
        $this->line('<info>Admin directory was created:</info> '.str_replace(base_path(), '', $this->directory));
70
71
        $this->makeDir('Controllers');
72
73
        $this->createHomeController();
74
        $this->createExampleController();
75
        //$this->createAuthController();
0 ignored issues
show
Unused Code Comprehensibility introduced by
84% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
76
        //$this->createAdministratorController();
0 ignored issues
show
Unused Code Comprehensibility introduced by
84% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
77
78
        $this->createMenuFile();
79
        $this->createRoutesFile();
80
81
        //$this->copyLanguageFiles();
0 ignored issues
show
Unused Code Comprehensibility introduced by
84% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
82
    }
83
84
    /**
85
     * Create HomeController.
86
     *
87
     * @return void
88
     */
89 View Code Duplication
    public function createHomeController()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
90
    {
91
        $homeController = $this->directory.'/Controllers/HomeController.php';
92
        $contents = $this->getStub('HomeController');
93
94
        $this->laravel['files']->put(
95
            $homeController,
96
            str_replace('DummyNamespace', Admin::controllerNamespace(), $contents)
97
        );
98
        $this->line('<info>HomeController file was created:</info> '.str_replace(base_path(), '', $homeController));
99
    }
100
101
    /**
102
     * Create HomeController.
103
     *
104
     * @return void
105
     */
106 View Code Duplication
    public function createExampleController()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
107
    {
108
        $exampleController = $this->directory.'/Controllers/ExampleController.php';
109
        $contents = $this->getStub('ExampleController');
110
111
        $this->laravel['files']->put(
112
            $exampleController,
113
            str_replace('DummyNamespace', Admin::controllerNamespace(), $contents)
114
        );
115
        $this->line('<info>ExampleController file was created:</info> '.str_replace(base_path(), '', $exampleController));
116
    }
117
118
    /**
119
     * Create AuthController.
120
     *
121
     * @return void
122
     */
123 View Code Duplication
    public function createAuthController()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
124
    {
125
        $authController = $this->directory.'/Controllers/AuthController.php';
126
        $contents = $this->getStub('AuthController');
127
128
        $this->laravel['files']->put(
129
            $authController,
130
            str_replace('DummyNamespace', Admin::controllerNamespace(), $contents)
131
        );
132
        $this->line('<info>AuthController file was created:</info> '.str_replace(base_path(), '', $authController));
133
    }
134
135
    /**
136
     * Create AdministratorController.
137
     *
138
     * @return void
139
     */
140 View Code Duplication
    public function createAdministratorController()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
141
    {
142
        $controller = $this->directory.'/Controllers/AdministratorController.php';
143
        $contents = $this->getStub('AdministratorController');
144
145
        $this->laravel['files']->put(
146
            $controller,
147
            str_replace('DummyNamespace', Admin::controllerNamespace(), $contents)
148
        );
149
        $this->line(
150
            '<info>AdministratorController file was created:</info> '.str_replace(base_path(), '', $controller)
151
        );
152
    }
153
154
    /**
155
     * Create menu file.
156
     *
157
     * @return void
158
     */
159
    protected function createMenuFile()
160
    {
161
        $file = $this->directory.'/menu.php';
162
163
        $contents = $this->getStub('menu');
164
        $this->laravel['files']->put($file, $contents);
165
        $this->line('<info>Menu file was created:</info> '.str_replace(base_path(), '', $file));
166
    }
167
168
    /**
169
     * Create routes file.
170
     *
171
     * @return void
172
     */
173
    protected function createRoutesFile()
174
    {
175
        $file = $this->directory.'/routes.php';
176
177
        $contents = $this->getStub('routes');
178
        $this->laravel['files']->put($file, str_replace('DummyNamespace', Admin::controllerNamespace(), $contents));
179
        $this->line('<info>Routes file was created:</info> '.str_replace(base_path(), '', $file));
180
    }
181
182
    /**
183
     * Copy language files to admin directory.
184
     *
185
     * @return void
186
     */
187
    protected function copyLanguageFiles()
188
    {
189
        $this->laravel['files']->copyDirectory(__DIR__.'/../../lang/', "{$this->directory}/lang/");
190
    }
191
192
    /**
193
     * Get stub contents.
194
     *
195
     * @param $name
196
     *
197
     * @return string
198
     */
199
    protected function getStub($name)
200
    {
201
        return $this->laravel['files']->get(__DIR__."/stubs/$name.stub");
202
    }
203
204
    /**
205
     * Make new directory.
206
     *
207
     * @param string $path
208
     */
209
    protected function makeDir($path = '')
210
    {
211
        $this->laravel['files']->makeDirectory("{$this->directory}/$path", 0755, true, true);
212
    }
213
}
214