1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Charcoal\Tests; |
4
|
|
|
|
5
|
|
|
use PDO; |
6
|
|
|
|
7
|
|
|
// From Mockery |
8
|
|
|
use Mockery; |
9
|
|
|
|
10
|
|
|
// From PSR-3 |
11
|
|
|
use Psr\Log\NullLogger; |
12
|
|
|
|
13
|
|
|
// From 'cache/void-adapter' (PSR-6) |
|
|
|
|
14
|
|
|
use Cache\Adapter\Void\VoidCachePool; |
15
|
|
|
|
16
|
|
|
// From 'tedivm/stash' (PSR-6) |
|
|
|
|
17
|
|
|
use Stash\Pool; |
18
|
|
|
use Stash\Driver\Ephemeral; |
19
|
|
|
|
20
|
|
|
// From 'zendframework/zend-permissions-acl' |
21
|
|
|
use Zend\Permissions\Acl\Acl; |
22
|
|
|
|
23
|
|
|
// From Pimple |
24
|
|
|
use Pimple\Container; |
25
|
|
|
|
26
|
|
|
// From 'league/climate' |
27
|
|
|
use League\CLImate\CLImate; |
28
|
|
|
use League\CLImate\Util\System\Linux; |
29
|
|
|
use League\CLImate\Util\Output; |
30
|
|
|
use League\CLImate\Util\Reader\Stdin; |
31
|
|
|
use League\CLImate\Util\UtilFactory; |
32
|
|
|
|
33
|
|
|
// From 'charcoal-factory' |
34
|
|
|
use Charcoal\Factory\GenericFactory as Factory; |
35
|
|
|
|
36
|
|
|
// From 'charcoal-app' |
37
|
|
|
use Charcoal\App\AppConfig; |
38
|
|
|
use Charcoal\App\Template\WidgetBuilder; |
39
|
|
|
|
40
|
|
|
// From 'charcoal-core' |
41
|
|
|
use Charcoal\Model\Service\MetadataLoader; |
42
|
|
|
use Charcoal\Source\DatabaseSource; |
43
|
|
|
|
44
|
|
|
// From 'charcoal-user' |
45
|
|
|
use Charcoal\User\Authenticator; |
46
|
|
|
use Charcoal\User\Authorizer; |
47
|
|
|
|
48
|
|
|
// From 'charcoal-ui' |
49
|
|
|
use Charcoal\Ui\Dashboard\DashboardBuilder; |
50
|
|
|
use Charcoal\Ui\Dashboard\DashboardInterface; |
51
|
|
|
use Charcoal\Ui\Layout\LayoutBuilder; |
52
|
|
|
use Charcoal\Ui\Layout\LayoutFactory; |
53
|
|
|
|
54
|
|
|
// From 'charcoal-email' |
55
|
|
|
use Charcoal\Email\Email; |
56
|
|
|
use Charcoal\Email\EmailConfig; |
57
|
|
|
|
58
|
|
|
// From 'charcoal-view' |
59
|
|
|
use Charcoal\View\GenericView; |
60
|
|
|
use Charcoal\View\Mustache\MustacheEngine; |
61
|
|
|
use Charcoal\View\Mustache\MustacheLoader; |
62
|
|
|
|
63
|
|
|
// From 'charcoal-translator' |
64
|
|
|
use Charcoal\Translator\LocalesManager; |
65
|
|
|
use Charcoal\Translator\Translator; |
66
|
|
|
|
67
|
|
|
// From 'charcoal-admin' |
68
|
|
|
use Charcoal\Admin\Config as AdminConfig; |
69
|
|
|
|
70
|
|
|
/** |
71
|
|
|
* |
72
|
|
|
*/ |
73
|
|
|
class ContainerProvider |
74
|
|
|
{ |
75
|
|
|
/** |
76
|
|
|
* Register the unit tests required services. |
77
|
|
|
* |
78
|
|
|
* @param Container $container A DI container. |
79
|
|
|
* @return void |
80
|
|
|
*/ |
81
|
|
|
public function registerBaseServices(Container $container) |
82
|
|
|
{ |
83
|
|
|
$this->registerConfig($container); |
|
|
|
|
84
|
|
|
$this->registerDatabase($container); |
|
|
|
|
85
|
|
|
$this->registerLogger($container); |
|
|
|
|
86
|
|
|
$this->registerCache($container); |
|
|
|
|
87
|
|
|
} |
88
|
|
|
|
89
|
|
|
/** |
90
|
|
|
* Register the admin services. |
91
|
|
|
* |
92
|
|
|
* @param Container $container A DI container. |
93
|
|
|
* @return void |
94
|
|
|
*/ |
95
|
|
|
public function registerAdminServices(Container $container) |
96
|
|
|
{ |
97
|
|
|
$this->registerBaseUrl($container); |
|
|
|
|
98
|
|
|
$this->registerAdminConfig($container); |
|
|
|
|
99
|
|
|
$this->registerAuthenticator($container); |
|
|
|
|
100
|
|
|
$this->registerAuthorizer($container); |
|
|
|
|
101
|
|
|
} |
102
|
|
|
|
103
|
|
|
/** |
104
|
|
|
* Setup the application's base URI. |
105
|
|
|
* |
106
|
|
|
* @param Container $container A DI container. |
107
|
|
|
* @return void |
108
|
|
|
*/ |
109
|
|
|
public function registerBaseUrl(Container $container) |
110
|
|
|
{ |
111
|
|
|
$container['base-url'] = function (Container $container) { |
|
|
|
|
112
|
|
|
return ''; |
113
|
|
|
}; |
114
|
|
|
} |
115
|
|
|
|
116
|
|
|
/** |
117
|
|
|
* Setup the application configset. |
118
|
|
|
* |
119
|
|
|
* @param Container $container A DI container. |
120
|
|
|
* @return void |
121
|
|
|
*/ |
122
|
|
|
public function registerConfig(Container $container) |
123
|
|
|
{ |
124
|
|
|
$container['config'] = function (Container $container) { |
|
|
|
|
125
|
|
|
return new AppConfig([ |
126
|
|
|
'base_path' => realpath(__DIR__.'/../../..'), |
127
|
|
|
'apis' => [ |
128
|
|
|
'google' => [ |
129
|
|
|
'recaptcha' => [ |
130
|
|
|
'public_key' => 'foobar', |
131
|
|
|
'private_key' => 'bazqux', |
132
|
|
|
] |
133
|
|
|
] |
134
|
|
|
] |
135
|
|
|
]); |
136
|
|
|
}; |
137
|
|
|
} |
138
|
|
|
|
139
|
|
|
/** |
140
|
|
|
* Setup the admin module configset. |
141
|
|
|
* |
142
|
|
|
* @param Container $container A DI container. |
143
|
|
|
* @return void |
144
|
|
|
*/ |
145
|
|
|
public function registerAdminConfig(Container $container) |
146
|
|
|
{ |
147
|
|
|
$this->registerConfig($container); |
|
|
|
|
148
|
|
|
|
149
|
|
|
$container['admin/config'] = function (Container $container) { |
|
|
|
|
150
|
|
|
return new AdminConfig(); |
151
|
|
|
}; |
152
|
|
|
} |
153
|
|
|
|
154
|
|
|
public function registerLayoutFactory(Container $container) |
155
|
|
|
{ |
156
|
|
|
$container['layout/factory'] = function (Container $container) { |
|
|
|
|
157
|
|
|
|
158
|
|
|
$layoutFactory = new LayoutFactory(); |
159
|
|
|
return $layoutFactory; |
160
|
|
|
}; |
161
|
|
|
} |
162
|
|
|
|
163
|
|
|
public function registerLayoutBuilder(Container $container) |
164
|
|
|
{ |
165
|
|
|
$this->registerLayoutFactory($container); |
|
|
|
|
166
|
|
|
|
167
|
|
|
$container['layout/builder'] = function (Container $container) { |
168
|
|
|
$layoutFactory = $container['layout/factory']; |
169
|
|
|
$layoutBuilder = new LayoutBuilder($layoutFactory, $container); |
170
|
|
|
return $layoutBuilder; |
171
|
|
|
}; |
172
|
|
|
} |
173
|
|
|
|
174
|
|
View Code Duplication |
public function registerDashboardFactory(Container $container) |
|
|
|
|
175
|
|
|
{ |
176
|
|
|
$this->registerLogger($container); |
|
|
|
|
177
|
|
|
$this->registerWidgetBuilder($container); |
|
|
|
|
178
|
|
|
$this->registerLayoutBuilder($container); |
|
|
|
|
179
|
|
|
|
180
|
|
|
$container['dashboard/factory'] = function (Container $container) { |
181
|
|
|
return new Factory([ |
182
|
|
|
'arguments' => [[ |
183
|
|
|
'container' => $container, |
184
|
|
|
'logger' => $container['logger'], |
185
|
|
|
'widget_builder' => $container['widget/builder'], |
186
|
|
|
'layout_builder' => $container['layout/builder'] |
187
|
|
|
]], |
188
|
|
|
'resolver_options' => [ |
189
|
|
|
'suffix' => 'Dashboard' |
190
|
|
|
] |
191
|
|
|
]); |
192
|
|
|
}; |
193
|
|
|
} |
194
|
|
|
|
195
|
|
|
public function registerDashboardBuilder(Container $container) |
196
|
|
|
{ |
197
|
|
|
$this->registerDashboardFactory($container); |
|
|
|
|
198
|
|
|
|
199
|
|
|
$container['dashboard/builder'] = function (Container $container) { |
200
|
|
|
$dashboardFactory = $container['dashboard/factory']; |
201
|
|
|
$dashboardBuilder = new DashboardBuilder($dashboardFactory, $container); |
202
|
|
|
return $dashboardBuilder; |
203
|
|
|
}; |
204
|
|
|
} |
205
|
|
|
|
206
|
|
View Code Duplication |
public function registerWidgetFactory(Container $container) |
|
|
|
|
207
|
|
|
{ |
208
|
|
|
$this->registerLogger($container); |
|
|
|
|
209
|
|
|
|
210
|
|
|
$container['widget/factory'] = function (Container $container) { |
211
|
|
|
return new Factory([ |
212
|
|
|
'resolver_options' => [ |
213
|
|
|
'suffix' => 'Widget' |
214
|
|
|
], |
215
|
|
|
'arguments' => [[ |
216
|
|
|
'container' => $container, |
217
|
|
|
'logger' => $container['logger'] |
218
|
|
|
]] |
219
|
|
|
]); |
220
|
|
|
}; |
221
|
|
|
} |
222
|
|
|
|
223
|
|
|
public function registerWidgetBuilder(Container $container) |
224
|
|
|
{ |
225
|
|
|
$this->registerWidgetFactory($container); |
|
|
|
|
226
|
|
|
|
227
|
|
|
$container['widget/builder'] = function (Container $container) { |
228
|
|
|
return new WidgetBuilder($container['widget/factory'], $container); |
229
|
|
|
}; |
230
|
|
|
} |
231
|
|
|
public function registerClimate(Container $container) |
232
|
|
|
{ |
233
|
|
|
$container['climate/system'] = function (Container $container) { |
|
|
|
|
234
|
|
|
$system = Mockery::mock(Linux::class); |
235
|
|
|
$system->shouldReceive('hasAnsiSupport')->andReturn(true); |
236
|
|
|
$system->shouldReceive('width')->andReturn(80); |
237
|
|
|
|
238
|
|
|
return $system; |
239
|
|
|
}; |
240
|
|
|
|
241
|
|
|
$container['climate/output'] = function (Container $container) { |
|
|
|
|
242
|
|
|
$output = Mockery::mock(Output::class); |
243
|
|
|
$output->shouldReceive('persist')->andReturn($output); |
244
|
|
|
$output->shouldReceive('sameLine')->andReturn($output); |
245
|
|
|
$output->shouldReceive('write'); |
246
|
|
|
|
247
|
|
|
return $output; |
248
|
|
|
}; |
249
|
|
|
|
250
|
|
|
$container['climate/reader'] = function (Container $container) { |
|
|
|
|
251
|
|
|
$reader = Mockery::mock(Stdin::class); |
252
|
|
|
$reader->shouldReceive('line')->andReturn('line'); |
253
|
|
|
$reader->shouldReceive('char')->andReturn('char'); |
254
|
|
|
$reader->shouldReceive('multiLine')->andReturn('multiLine'); |
255
|
|
|
return $reader; |
256
|
|
|
}; |
257
|
|
|
|
258
|
|
|
$container['climate/util'] = function (Container $container) { |
259
|
|
|
return new UtilFactory($container['climate/system']); |
260
|
|
|
}; |
261
|
|
|
|
262
|
|
|
$container['climate'] = function (Container $container) { |
263
|
|
|
$climate = new CLImate(); |
264
|
|
|
|
265
|
|
|
$climate->setOutput($container['climate/output']); |
266
|
|
|
$climate->setUtil($container['climate/util']); |
267
|
|
|
$climate->setReader($container['climate/reader']); |
268
|
|
|
|
269
|
|
|
return $climate; |
270
|
|
|
}; |
271
|
|
|
} |
272
|
|
|
|
273
|
|
|
/** |
274
|
|
|
* Setup the framework's view renderer. |
275
|
|
|
* |
276
|
|
|
* @param Container $container A DI container. |
277
|
|
|
* @return void |
278
|
|
|
*/ |
279
|
|
|
public function registerView(Container $container) |
280
|
|
|
{ |
281
|
|
|
$container['view/loader'] = function (Container $container) { |
282
|
|
|
return new MustacheLoader([ |
283
|
|
|
'logger' => $container['logger'], |
284
|
|
|
'base_path' => $container['config']['base_path'], |
285
|
|
|
'paths' => [ |
286
|
|
|
'views' |
287
|
|
|
] |
288
|
|
|
]); |
289
|
|
|
}; |
290
|
|
|
|
291
|
|
|
$container['view/engine'] = function (Container $container) { |
292
|
|
|
return new MustacheEngine([ |
293
|
|
|
'logger' => $container['logger'], |
294
|
|
|
'cache' => MustacheEngine::DEFAULT_CACHE_PATH, |
295
|
|
|
'loader' => $container['view/loader'] |
296
|
|
|
]); |
297
|
|
|
}; |
298
|
|
|
|
299
|
|
|
$container['view'] = function (Container $container) { |
300
|
|
|
return new GenericView([ |
301
|
|
|
'logger' => $container['logger'], |
302
|
|
|
'engine' => $container['view/engine'] |
303
|
|
|
]); |
304
|
|
|
}; |
305
|
|
|
} |
306
|
|
|
|
307
|
|
|
/** |
308
|
|
|
* Setup the application's translator service. |
309
|
|
|
* |
310
|
|
|
* @param Container $container A DI container. |
311
|
|
|
* @return void |
312
|
|
|
*/ |
313
|
|
|
public function registerTranslator(Container $container) |
314
|
|
|
{ |
315
|
|
|
$container['locales/manager'] = function (Container $container) { |
|
|
|
|
316
|
|
|
return new LocalesManager([ |
317
|
|
|
'locales' => [ |
318
|
|
|
'en' => [ 'locale' => 'en-US' ] |
319
|
|
|
] |
320
|
|
|
]); |
321
|
|
|
}; |
322
|
|
|
|
323
|
|
|
$container['translator'] = function (Container $container) { |
324
|
|
|
return new Translator([ |
325
|
|
|
'manager' => $container['locales/manager'] |
326
|
|
|
]); |
327
|
|
|
}; |
328
|
|
|
} |
329
|
|
|
|
330
|
|
|
/** |
331
|
|
|
* Setup the application's logging interface. |
332
|
|
|
* |
333
|
|
|
* @param Container $container A DI container. |
334
|
|
|
* @return void |
335
|
|
|
*/ |
336
|
|
|
public function registerLogger(Container $container) |
337
|
|
|
{ |
338
|
|
|
$container['logger'] = function (Container $container) { |
|
|
|
|
339
|
|
|
return new NullLogger(); |
340
|
|
|
}; |
341
|
|
|
} |
342
|
|
|
|
343
|
|
|
/** |
344
|
|
|
* Setup the application's caching interface. |
345
|
|
|
* |
346
|
|
|
* @param Container $container A DI container. |
347
|
|
|
* @return void |
348
|
|
|
*/ |
349
|
|
|
public function registerCache(Container $container) |
350
|
|
|
{ |
351
|
|
|
$container['cache'] = function ($container) { |
|
|
|
|
352
|
|
|
return new Pool(new Ephemeral()); |
353
|
|
|
}; |
354
|
|
|
} |
355
|
|
|
|
356
|
|
|
public function registerDatabase(Container $container) |
357
|
|
|
{ |
358
|
|
|
$container['database'] = function (Container $container) { |
|
|
|
|
359
|
|
|
$pdo = new PDO('sqlite::memory:'); |
360
|
|
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); |
361
|
|
|
return $pdo; |
362
|
|
|
}; |
363
|
|
|
} |
364
|
|
|
|
365
|
|
|
public function registerMetadataLoader(Container $container) |
366
|
|
|
{ |
367
|
|
|
$this->registerLogger($container); |
|
|
|
|
368
|
|
|
$this->registerCache($container); |
|
|
|
|
369
|
|
|
|
370
|
|
|
$container['metadata/loader'] = function (Container $container) { |
371
|
|
|
return new MetadataLoader([ |
372
|
|
|
'logger' => $container['logger'], |
373
|
|
|
'cache' => $container['cache'], |
374
|
|
|
'base_path' => $container['config']['base_path'], |
375
|
|
|
'paths' => [ |
376
|
|
|
'metadata', |
377
|
|
|
'vendor/locomotivemtl/charcoal-object/metadata', |
378
|
|
|
'vendor/locomotivemtl/charcoal-user/metadata' |
379
|
|
|
] |
380
|
|
|
]); |
381
|
|
|
}; |
382
|
|
|
} |
383
|
|
|
|
384
|
|
View Code Duplication |
public function registerSourceFactory(Container $container) |
|
|
|
|
385
|
|
|
{ |
386
|
|
|
$this->registerLogger($container); |
|
|
|
|
387
|
|
|
$this->registerDatabase($container); |
|
|
|
|
388
|
|
|
|
389
|
|
|
$container['source/factory'] = function (Container $container) { |
390
|
|
|
return new Factory([ |
391
|
|
|
'map' => [ |
392
|
|
|
'database' => DatabaseSource::class |
393
|
|
|
], |
394
|
|
|
'arguments' => [[ |
395
|
|
|
'logger' => $container['logger'], |
396
|
|
|
'pdo' => $container['database'] |
397
|
|
|
]] |
398
|
|
|
]); |
399
|
|
|
}; |
400
|
|
|
} |
401
|
|
|
|
402
|
|
View Code Duplication |
public function registerPropertyFactory(Container $container) |
|
|
|
|
403
|
|
|
{ |
404
|
|
|
$this->registerTranslator($container); |
|
|
|
|
405
|
|
|
$this->registerDatabase($container); |
|
|
|
|
406
|
|
|
$this->registerLogger($container); |
|
|
|
|
407
|
|
|
|
408
|
|
|
$container['property/factory'] = function (Container $container) { |
409
|
|
|
return new Factory([ |
410
|
|
|
'resolver_options' => [ |
411
|
|
|
'prefix' => '\\Charcoal\\Property\\', |
412
|
|
|
'suffix' => 'Property' |
413
|
|
|
], |
414
|
|
|
'arguments' => [[ |
415
|
|
|
'container' => $container, |
416
|
|
|
'database' => $container['database'], |
417
|
|
|
'translator' => $container['translator'], |
418
|
|
|
'logger' => $container['logger'] |
419
|
|
|
]] |
420
|
|
|
]); |
421
|
|
|
}; |
422
|
|
|
} |
423
|
|
|
|
424
|
|
View Code Duplication |
public function registerPropertyDisplayFactory(Container $container) |
|
|
|
|
425
|
|
|
{ |
426
|
|
|
$this->registerDatabase($container); |
|
|
|
|
427
|
|
|
$this->registerLogger($container); |
|
|
|
|
428
|
|
|
|
429
|
|
|
$container['property/display/factory'] = function (Container $container) { |
430
|
|
|
return new Factory([ |
431
|
|
|
'resolver_options' => [ |
432
|
|
|
'suffix' => 'Display' |
433
|
|
|
], |
434
|
|
|
'arguments' => [[ |
435
|
|
|
'container' => $container, |
436
|
|
|
'logger' => $container['logger'] |
437
|
|
|
]] |
438
|
|
|
]); |
439
|
|
|
}; |
440
|
|
|
} |
441
|
|
|
|
442
|
|
|
|
443
|
|
|
public function registerModelFactory(Container $container) |
444
|
|
|
{ |
445
|
|
|
$this->registerLogger($container); |
|
|
|
|
446
|
|
|
$this->registerTranslator($container); |
|
|
|
|
447
|
|
|
$this->registerMetadataLoader($container); |
|
|
|
|
448
|
|
|
$this->registerPropertyFactory($container); |
|
|
|
|
449
|
|
|
$this->registerSourceFactory($container); |
|
|
|
|
450
|
|
|
|
451
|
|
|
$container['model/factory'] = function (Container $container) { |
452
|
|
|
return new Factory([ |
453
|
|
|
'arguments' => [[ |
454
|
|
|
'container' => $container, |
455
|
|
|
'logger' => $container['logger'], |
456
|
|
|
'metadata_loader' => $container['metadata/loader'], |
457
|
|
|
'property_factory' => $container['property/factory'], |
458
|
|
|
'source_factory' => $container['source/factory'] |
459
|
|
|
]] |
460
|
|
|
]); |
461
|
|
|
}; |
462
|
|
|
} |
463
|
|
|
|
464
|
|
|
public function registerAcl(Container $container) |
465
|
|
|
{ |
466
|
|
|
$container['admin/acl'] = function (Container $container) { |
|
|
|
|
467
|
|
|
return new Acl(); |
468
|
|
|
}; |
469
|
|
|
} |
470
|
|
|
|
471
|
|
|
public function registerAuthenticator(Container $container) |
472
|
|
|
{ |
473
|
|
|
$this->registerLogger($container); |
|
|
|
|
474
|
|
|
$this->registerModelFactory($container); |
|
|
|
|
475
|
|
|
|
476
|
|
|
$container['admin/authenticator'] = function (Container $container) { |
477
|
|
|
return new Authenticator([ |
478
|
|
|
'logger' => $container['logger'], |
479
|
|
|
'user_type' => 'charcoal/admin/user', |
480
|
|
|
'user_factory' => $container['model/factory'], |
481
|
|
|
'token_type' => 'charcoal/admin/user/auth-token', |
482
|
|
|
'token_factory' => $container['model/factory'] |
483
|
|
|
]); |
484
|
|
|
}; |
485
|
|
|
} |
486
|
|
|
|
487
|
|
|
public function registerAuthorizer(Container $container) |
488
|
|
|
{ |
489
|
|
|
$this->registerLogger($container); |
|
|
|
|
490
|
|
|
$this->registerAcl($container); |
|
|
|
|
491
|
|
|
|
492
|
|
|
$container['admin/authorizer'] = function (Container $container) { |
493
|
|
|
return new Authorizer([ |
494
|
|
|
'logger' => $container['logger'], |
495
|
|
|
'acl' => $container['admin/acl'], |
496
|
|
|
'resource' => 'admin' |
497
|
|
|
]); |
498
|
|
|
}; |
499
|
|
|
} |
500
|
|
|
|
501
|
|
|
public function registerCollectionLoader(Container $container) |
502
|
|
|
{ |
503
|
|
|
$this->registerLogger($container); |
|
|
|
|
504
|
|
|
$this->registerModelFactory($container); |
|
|
|
|
505
|
|
|
|
506
|
|
|
$container['model/collection/loader'] = function (Container $container) { |
507
|
|
|
return new \Charcoal\Loader\CollectionLoader([ |
508
|
|
|
'logger' => $container['logger'], |
509
|
|
|
'factory' => $container['model/factory'] |
510
|
|
|
]); |
511
|
|
|
}; |
512
|
|
|
} |
513
|
|
|
|
514
|
|
|
public function registerEmailFactory(Container $container) |
515
|
|
|
{ |
516
|
|
|
$container['email/factory'] = function (Container $container) { |
|
|
|
|
517
|
|
|
return new Factory([ |
518
|
|
|
'map' => [ |
519
|
|
|
'email' => Email::class |
520
|
|
|
] |
521
|
|
|
]); |
522
|
|
|
}; |
523
|
|
|
} |
524
|
|
|
|
525
|
|
|
public function registerElfinderConfig(Container $container) |
526
|
|
|
{ |
527
|
|
|
$container['elfinder/config'] = function (Container $container) { |
|
|
|
|
528
|
|
|
return []; |
529
|
|
|
}; |
530
|
|
|
} |
531
|
|
|
|
532
|
|
View Code Duplication |
public function registerActionDependencies(Container $container) |
|
|
|
|
533
|
|
|
{ |
534
|
|
|
$this->registerLogger($container); |
|
|
|
|
535
|
|
|
|
536
|
|
|
$this->registerModelFactory($container); |
|
|
|
|
537
|
|
|
$this->registerTranslator($container); |
|
|
|
|
538
|
|
|
|
539
|
|
|
$this->registerAdminConfig($container); |
|
|
|
|
540
|
|
|
$this->registerBaseUrl($container); |
|
|
|
|
541
|
|
|
|
542
|
|
|
$this->registerAuthenticator($container); |
|
|
|
|
543
|
|
|
$this->registerAuthorizer($container); |
|
|
|
|
544
|
|
|
} |
545
|
|
|
|
546
|
|
|
public function registerTemplateDependencies(Container $container) |
547
|
|
|
{ |
548
|
|
|
$this->registerLogger($container); |
|
|
|
|
549
|
|
|
|
550
|
|
|
$this->registerModelFactory($container); |
|
|
|
|
551
|
|
|
$this->registerTranslator($container); |
|
|
|
|
552
|
|
|
|
553
|
|
|
$this->registerAdminConfig($container); |
|
|
|
|
554
|
|
|
$this->registerBaseUrl($container); |
|
|
|
|
555
|
|
|
|
556
|
|
|
$this->registerAuthenticator($container); |
|
|
|
|
557
|
|
|
$this->registerAuthorizer($container); |
|
|
|
|
558
|
|
|
|
559
|
|
|
$container['menu/builder'] = null; |
560
|
|
|
$container['menu/item/builder'] = null; |
561
|
|
|
} |
562
|
|
|
|
563
|
|
View Code Duplication |
public function registerWidgetDependencies(Container $container) |
|
|
|
|
564
|
|
|
{ |
565
|
|
|
$this->registerLogger($container); |
|
|
|
|
566
|
|
|
$this->registerTranslator($container); |
|
|
|
|
567
|
|
|
$this->registerView($container); |
|
|
|
|
568
|
|
|
$this->registerAdminConfig($container); |
|
|
|
|
569
|
|
|
$this->registerBaseUrl($container); |
|
|
|
|
570
|
|
|
$this->registerModelFactory($container); |
|
|
|
|
571
|
|
|
|
572
|
|
|
$this->registerAuthenticator($container); |
|
|
|
|
573
|
|
|
$this->registerAuthorizer($container); |
|
|
|
|
574
|
|
|
} |
575
|
|
|
} |
576
|
|
|
|
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.