1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Acacha\AdminLTETemplateLaravel\Console; |
4
|
|
|
|
5
|
|
|
use Illuminate\Console\Command; |
6
|
|
|
use Illuminate\Filesystem\Filesystem; |
7
|
|
|
|
8
|
|
|
/** |
9
|
|
|
* Class PublishAdminLTE. |
10
|
|
|
*/ |
11
|
|
|
class PublishAdminLTE extends Command |
12
|
|
|
{ |
13
|
|
|
use Installable; |
14
|
|
|
/** |
15
|
|
|
* The filesystem instance. |
16
|
|
|
* |
17
|
|
|
* @var \Illuminate\Filesystem\Filesystem |
18
|
|
|
*/ |
19
|
|
|
protected $files; |
20
|
|
|
|
21
|
|
|
/** |
22
|
|
|
* The name and signature of the console command. |
23
|
|
|
*/ |
24
|
|
|
protected $signature = 'adminlte-laravel:publish {--f|force : Force overwrite of files}'; |
25
|
|
|
|
26
|
|
|
/** |
27
|
|
|
* The console command description. |
28
|
|
|
* |
29
|
|
|
* @var string |
30
|
|
|
*/ |
31
|
|
|
protected $description = 'Publish Acacha AdminLTE Template files into laravel project'; |
32
|
|
|
|
33
|
|
|
/** |
34
|
|
|
* Force overwrite of files. |
35
|
|
|
* |
36
|
|
|
* @var bool |
37
|
|
|
*/ |
38
|
|
|
protected $force = false; |
39
|
|
|
|
40
|
|
|
/** |
41
|
|
|
* Create a new command instance. |
42
|
|
|
* |
43
|
|
|
* @param \Illuminate\Filesystem\Filesystem $files |
44
|
|
|
* |
45
|
|
|
*/ |
46
|
|
|
public function __construct(Filesystem $files) |
47
|
|
|
{ |
48
|
|
|
parent::__construct(); |
49
|
|
|
$this->files = $files; |
50
|
|
|
} |
51
|
|
|
|
52
|
|
|
/** |
53
|
|
|
* Execute the console command. |
54
|
|
|
*/ |
55
|
|
View Code Duplication |
public function handle() |
|
|
|
|
56
|
|
|
{ |
57
|
|
|
$this->processOptions(); |
58
|
|
|
|
59
|
|
|
//Publish |
60
|
|
|
$this->publishHomeController(); |
61
|
|
|
$this->changeRegisterController(); |
62
|
|
|
$this->changeLoginController(); |
63
|
|
|
$this->changeForgotPasswordController(); |
64
|
|
|
$this->changeResetPasswordController(); |
65
|
|
|
$this->publishPublicAssets(); |
66
|
|
|
$this->publishViews(); |
67
|
|
|
$this->publishResourceAssets(); |
68
|
|
|
$this->publishTests(); |
69
|
|
|
$this->publishLanguages(); |
70
|
|
|
$this->publishGravatar(); |
71
|
|
|
$this->publishConfig(); |
72
|
|
|
$this->publishWebRoutes(); |
73
|
|
|
$this->publishApiRoutes(); |
74
|
|
|
$this->publishDusk(); |
75
|
|
|
$this->publishDatabaseConfig(); |
76
|
|
|
} |
77
|
|
|
|
78
|
|
|
/** |
79
|
|
|
* Install Home Controller. |
80
|
|
|
*/ |
81
|
|
|
private function publishHomeController() |
82
|
|
|
{ |
83
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::homeController()); |
84
|
|
|
} |
85
|
|
|
|
86
|
|
|
/** |
87
|
|
|
* Change Auth Register controller. |
88
|
|
|
*/ |
89
|
|
|
private function changeRegisterController() |
90
|
|
|
{ |
91
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::registerController()); |
92
|
|
|
} |
93
|
|
|
|
94
|
|
|
/** |
95
|
|
|
* Change Auth Login controller. |
96
|
|
|
*/ |
97
|
|
|
private function changeLoginController() |
98
|
|
|
{ |
99
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::loginController()); |
100
|
|
|
} |
101
|
|
|
|
102
|
|
|
/** |
103
|
|
|
* Change Auth Forgot Password controller. |
104
|
|
|
*/ |
105
|
|
|
private function changeForgotPasswordController() |
106
|
|
|
{ |
107
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::forgotPasswordController()); |
108
|
|
|
} |
109
|
|
|
|
110
|
|
|
/** |
111
|
|
|
* Change Auth Reset Password controller. |
112
|
|
|
*/ |
113
|
|
|
private function changeResetPasswordController() |
114
|
|
|
{ |
115
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::resetPasswordController()); |
116
|
|
|
} |
117
|
|
|
|
118
|
|
|
/** |
119
|
|
|
* Install public assets. |
120
|
|
|
*/ |
121
|
|
|
private function publishPublicAssets() |
122
|
|
|
{ |
123
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::publicAssets()); |
124
|
|
|
} |
125
|
|
|
|
126
|
|
|
/** |
127
|
|
|
* Install views. |
128
|
|
|
*/ |
129
|
|
|
private function publishViews() |
130
|
|
|
{ |
131
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::viewsToOverwrite()); |
132
|
|
|
} |
133
|
|
|
|
134
|
|
|
/** |
135
|
|
|
* Install resource assets. |
136
|
|
|
*/ |
137
|
|
|
private function publishResourceAssets() |
138
|
|
|
{ |
139
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::resourceAssets()); |
140
|
|
|
} |
141
|
|
|
|
142
|
|
|
/** |
143
|
|
|
* Install resource assets. |
144
|
|
|
*/ |
145
|
|
|
private function publishTests() |
146
|
|
|
{ |
147
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::tests()); |
148
|
|
|
} |
149
|
|
|
|
150
|
|
|
/** |
151
|
|
|
* Install language assets. |
152
|
|
|
*/ |
153
|
|
|
private function publishLanguages() |
154
|
|
|
{ |
155
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::languages()); |
156
|
|
|
} |
157
|
|
|
|
158
|
|
|
/** |
159
|
|
|
* Install gravatar config file. |
160
|
|
|
*/ |
161
|
|
|
private function publishGravatar() |
162
|
|
|
{ |
163
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::gravatar()); |
164
|
|
|
} |
165
|
|
|
|
166
|
|
|
/** |
167
|
|
|
* Publish adminlte package config. |
168
|
|
|
*/ |
169
|
|
|
private function publishConfig() |
170
|
|
|
{ |
171
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::config()); |
172
|
|
|
} |
173
|
|
|
|
174
|
|
|
/** |
175
|
|
|
* Publish routes/web.php file. |
176
|
|
|
*/ |
177
|
|
|
private function publishWebRoutes() |
178
|
|
|
{ |
179
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::webroutes()); |
180
|
|
|
} |
181
|
|
|
|
182
|
|
|
/** |
183
|
|
|
* Publish routes/api.php file. |
184
|
|
|
*/ |
185
|
|
|
private function publishApiRoutes() |
186
|
|
|
{ |
187
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::apiroutes()); |
188
|
|
|
} |
189
|
|
|
|
190
|
|
|
/** |
191
|
|
|
* Publish dusk tests files. |
192
|
|
|
*/ |
193
|
|
|
private function publishDusk() |
194
|
|
|
{ |
195
|
|
|
$this->publishDuskEnvironment(); |
196
|
|
|
$this->publishAppServiceProvider(); |
197
|
|
|
} |
198
|
|
|
|
199
|
|
|
/** |
200
|
|
|
* Publish dusk environment files. |
201
|
|
|
*/ |
202
|
|
|
private function publishDuskEnvironment() |
203
|
|
|
{ |
204
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::duskEnvironment()); |
205
|
|
|
} |
206
|
|
|
|
207
|
|
|
/** |
208
|
|
|
* Publish app/Providers/AppServiceProvider.php file. |
209
|
|
|
*/ |
210
|
|
|
private function publishAppServiceProvider() |
211
|
|
|
{ |
212
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::appServiceProviderClass()); |
213
|
|
|
} |
214
|
|
|
|
215
|
|
|
/** |
216
|
|
|
* Publish config/database.php file. |
217
|
|
|
*/ |
218
|
|
|
private function publishDatabaseConfig() |
219
|
|
|
{ |
220
|
|
|
$this->install(\Acacha\AdminLTETemplateLaravel\Facades\AdminLTE::databaseConfig()); |
221
|
|
|
} |
222
|
|
|
|
223
|
|
|
/** |
224
|
|
|
* Process options before running command. |
225
|
|
|
*/ |
226
|
|
|
private function processOptions() |
227
|
|
|
{ |
228
|
|
|
$this->force = $this->option('force'); |
|
|
|
|
229
|
|
|
} |
230
|
|
|
} |
231
|
|
|
|
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.