@@ -180,7 +180,7 @@ protected function _initConfig()
180
180
/** Display the debug toolbar, if enabled. */
181
181
protected function _initZFDebug ()
182
182
{
183
- $ this ->bootstrap (' config ' );
183
+ $ this ->bootstrap (array ( ' Config ' , ' FrontController ' ) );
184
184
$ zfDebugPath = BASE_PATH .'/vendor/jokkedk/zfdebug/library ' ;
185
185
186
186
if (Zend_Registry::get ('configGlobal ' )->debug_toolbar === '1 ' && file_exists ($ zfDebugPath )) {
@@ -196,21 +196,24 @@ protected function _initZFDebug()
196
196
);
197
197
198
198
$ debug = new ZFDebug_Controller_Plugin_Debug ($ options );
199
-
200
- $ this ->bootstrap ('frontController ' );
201
- $ frontController = $ this ->getResource ('frontController ' );
199
+ $ frontController = $ this ->getResource ('FrontController ' );
202
200
$ frontController ->registerPlugin ($ debug );
201
+
202
+ return $ debug ;
203
203
}
204
+
205
+ return false ;
204
206
}
205
207
206
208
/** Register the module directories. */
207
209
protected function _initFrontModules ()
208
210
{
209
- $ this ->bootstrap ('frontController ' );
210
- $ front = $ this ->getResource ('frontController ' );
211
- $ front ->addModuleDirectory (BASE_PATH .'/modules ' );
211
+ $ this ->bootstrap ('FrontController ' );
212
+ $ frontController = $ this ->getResource ('FrontController ' );
213
+ $ frontController ->addModuleDirectory (BASE_PATH .'/modules ' );
214
+
212
215
if (file_exists (BASE_PATH .'/privateModules ' )) {
213
- $ front ->addModuleDirectory (BASE_PATH .'/privateModules ' );
216
+ $ frontController ->addModuleDirectory (BASE_PATH .'/privateModules ' );
214
217
}
215
218
}
216
219
@@ -272,132 +275,103 @@ protected function _initSass()
272
275
* Initialize the router.
273
276
*
274
277
* @return Zend_Controller_Router_Interface
278
+ * @throws Zend_Exception
275
279
*/
276
280
protected function _initRouter ()
277
281
{
278
- $ router = Zend_Controller_Front:: getInstance ()-> getRouter ( );
282
+ $ this -> bootstrap ( array ( ' Config ' , ' FrontController ' ) );
279
283
280
- // Init Modules
281
- $ frontController = Zend_Controller_Front::getInstance ();
284
+ $ frontController = $ this ->getResource ('FrontController ' );
282
285
$ frontController ->addControllerDirectory (BASE_PATH .'/core/controllers ' );
283
286
284
- $ modules = new Zend_Config_Ini (APPLICATION_CONFIG , 'module ' );
285
- // routes modules
286
- $ listeModule = array ();
287
- $ apiModules = array ();
288
- foreach ($ modules as $ key => $ module ) {
289
- if ($ module == 1 && file_exists (BASE_PATH .'/modules/ ' .$ key ) && file_exists (
290
- BASE_PATH .'/modules/ ' .$ key .'/AppController.php '
291
- )
292
- ) {
293
- $ listeModule [] = $ key ;
294
- // get web API controller directories and web API module names for enabled modules
295
- if (file_exists (BASE_PATH .'/modules/ ' .$ key .'/controllers/api ' )) {
296
- $ frontController ->addControllerDirectory (
297
- BASE_PATH .'/modules/ ' .$ key .'/controllers/api ' ,
298
- 'api ' .$ key
299
- );
300
- $ apiModules [] = $ key ;
301
- }
302
- } elseif ($ module == 1 && file_exists (BASE_PATH .'/privateModules/ ' .$ key ) && file_exists (
303
- BASE_PATH .'/privateModules/ ' .$ key .'/AppController.php '
304
- )
305
- ) {
306
- $ listeModule [] = $ key ;
307
- // get web API controller directories and web API module names for enabled modules
308
- if (file_exists (BASE_PATH .'/privateModules/ ' .$ key .'/controllers/api ' )) {
309
- $ frontController ->addControllerDirectory (
310
- BASE_PATH .'/privateModules/ ' .$ key .'/controllers/api ' ,
311
- 'api ' .$ key
312
- );
313
- $ apiModules [] = $ key ;
314
- }
315
- }
316
- }
317
-
318
- // get web API controller directory for core APIs
319
287
require_once BASE_PATH .'/core/ApiController.php ' ;
320
288
$ frontController ->addControllerDirectory (BASE_PATH .'/core/controllers/api ' , 'rest ' );
321
- // add RESTful route for web APIs
322
- $ restRoute = new Zend_Rest_Route ($ frontController , array (), array ('rest ' ));
323
- $ router ->addRoute ('api-core ' , $ restRoute );
324
- // loading modules elements
325
- foreach ($ listeModule as $ m ) {
326
- $ route = $ m ;
327
- $ nameModule = $ m ;
328
- $ router ->addRoute (
329
- $ nameModule .'-1 ' ,
330
- new Zend_Controller_Router_Route (
331
- '' .$ route .'/:controller/:action/* ' , array ('module ' => $ nameModule )
332
- )
333
- );
334
- $ router ->addRoute (
335
- $ nameModule .'-2 ' ,
336
- new Zend_Controller_Router_Route (
337
- '' .$ route .'/:controller/ ' ,
338
- array ('module ' => $ nameModule , 'action ' => 'index ' )
339
- )
340
- );
341
- $ router ->addRoute (
342
- $ nameModule .'-3 ' ,
343
- new Zend_Controller_Router_Route (
344
- '' .$ route .'/ ' ,
345
- array ('module ' => $ nameModule , 'controller ' => 'index ' , 'action ' => 'index ' )
346
- )
347
- );
348
289
349
- if (file_exists (BASE_PATH .'/modules/ ' .$ route .'/AppController.php ' )) {
350
- require_once BASE_PATH .'/modules/ ' .$ route .'/AppController.php ' ;
351
- }
352
- if (file_exists (BASE_PATH .'/modules/ ' .$ route .'/models/AppDao.php ' )) {
353
- require_once BASE_PATH .'/modules/ ' .$ route .'/models/AppDao.php ' ;
354
- }
355
- if (file_exists (BASE_PATH .'/modules/ ' .$ route .'/models/AppModel.php ' )) {
356
- require_once BASE_PATH .'/modules/ ' .$ route .'/models/AppModel.php ' ;
290
+ $ router = $ frontController ->getRouter ();
291
+ $ router ->addRoute ('api-core ' , new Zend_Rest_Route ($ frontController , array (), array ('rest ' )));
292
+
293
+ $ enabledModules = array ();
294
+
295
+ if (isset (Zend_Registry::get ('configDatabase ' )->version ) === false ) {
296
+ Zend_Registry::set ('models ' , array ());
297
+
298
+ /** @var ModuleModel $moduleModel */
299
+ $ moduleModel = MidasLoader::loadModel ('Module ' );
300
+ $ moduleDaos = $ moduleModel ->getEnabled ();
301
+
302
+ /** @var ModuleDao $moduleDao */
303
+ foreach ($ moduleDaos as $ moduleDao ) {
304
+ $ enabledModules [] = $ moduleDao ->getName ();
357
305
}
358
- if (file_exists (BASE_PATH .'/modules/ ' .$ route .'/constant/module.php ' )) {
359
- require_once BASE_PATH .'/modules/ ' .$ route .'/constant/module.php ' ;
306
+ } else {
307
+ $ modules = new Zend_Config_Ini (APPLICATION_CONFIG , 'module ' );
308
+ $ enabledModules = array_keys ($ modules ->toArray (), 1 );
309
+ }
310
+
311
+ $ enabledApiModules = array ();
312
+
313
+ /** @var string $enabledModule */
314
+ foreach ($ enabledModules as $ enabledModule ) {
315
+ if (file_exists (BASE_PATH .'/modules/ ' .$ enabledModule .'/AppController.php ' )) {
316
+ $ moduleRoot = BASE_PATH .'/modules/ ' .$ enabledModule ;
317
+ } elseif (file_exists (BASE_PATH .'/privateModules/ ' .$ enabledModule .'/AppController.php ' )) {
318
+ $ moduleRoot = BASE_PATH .'/privateModules/ ' .$ enabledModule ;
319
+ } else {
320
+ throw new Zend_Exception ('Module ' .$ enabledModule .'" does not exist. ' );
360
321
}
361
322
362
- if (file_exists (BASE_PATH .'/privateModules/ ' .$ route .'/AppController.php ' )) {
363
- require_once BASE_PATH .'/privateModules/ ' .$ route .'/AppController.php ' ;
323
+ $ frontController ->addControllerDirectory ($ moduleRoot .'/controllers ' , $ enabledModule );
324
+
325
+ if (file_exists ($ moduleRoot .'/constant/module.php ' )) {
326
+ require_once $ moduleRoot .'/constant/module.php ' ;
364
327
}
365
- if (file_exists (BASE_PATH .'/privateModules/ ' .$ route .'/models/AppDao.php ' )) {
366
- require_once BASE_PATH .'/privateModules/ ' .$ route .'/models/AppDao.php ' ;
328
+
329
+ if (file_exists ($ moduleRoot .'/AppController.php ' )) {
330
+ require_once $ moduleRoot .'/AppController.php ' ;
367
331
}
368
- if (file_exists (BASE_PATH .'/privateModules/ ' .$ route .'/models/AppModel.php ' )) {
369
- require_once BASE_PATH .'/privateModules/ ' .$ route .'/models/AppModel.php ' ;
332
+
333
+ if (file_exists ($ moduleRoot .'/models/AppDao.php ' )) {
334
+ require_once $ moduleRoot .'/models/AppDao.php ' ;
370
335
}
371
- if (file_exists (BASE_PATH .'/privateModules/ ' .$ route .'/constant/module.php ' )) {
372
- require_once BASE_PATH .'/privateModules/ ' .$ route .'/constant/module.php ' ;
336
+
337
+ if (file_exists ($ moduleRoot .'/models/AppModel.php ' )) {
338
+ require_once $ moduleRoot .'/models/AppModel.php ' ;
373
339
}
374
340
375
- $ dir = BASE_PATH . ' /modules/ ' . $ route .'/models/base ' ;
376
- if (! is_dir ( $ dir )) {
377
- $ dir = BASE_PATH . ' /privateModules/ ' . $ route . ' /models/base ' ;
341
+ if ( file_exists ( $ moduleRoot .'/controllers/api ' )) {
342
+ $ frontController -> addControllerDirectory ( $ moduleRoot . ' /controllers/api ' , ' api ' . $ enabledModule );
343
+ $ enabledApiModules [] = $ enabledModule ;
378
344
}
379
345
380
- if (is_dir ($ dir )) {
381
- $ objects = scandir ($ dir );
382
- foreach ($ objects as $ object ) {
383
- if ($ object != '. ' && $ object != '.. ' ) {
384
- if (filetype ($ dir .'/ ' .$ object ) != 'dir ' ) {
385
- require_once $ dir .'/ ' .$ object ;
386
- }
346
+ $ router ->addRoute ($ enabledModule .'-1 ' , new Zend_Controller_Router_Route ($ enabledModule .'/:controller/:action/* ' , array ('module ' => $ enabledModule )));
347
+ $ router ->addRoute ($ enabledModule .'-2 ' , new Zend_Controller_Router_Route ($ enabledModule .'/:controller/ ' , array ('module ' => $ enabledModule , 'action ' => 'index ' )));
348
+ $ router ->addRoute ($ enabledModule .'-3 ' , new Zend_Controller_Router_Route ($ enabledModule .'/ ' , array ('module ' => $ enabledModule , 'controller ' => 'index ' , 'action ' => 'index ' )));
349
+
350
+ $ baseModels = $ moduleRoot .'/models/base ' ;
351
+
352
+ if (is_dir ($ baseModels )) {
353
+ $ fileNames = array_diff (scandir ($ baseModels ), array ('.. ' , '. ' ));
354
+
355
+ /** @var string $fileName */
356
+ foreach ($ fileNames as $ fileName ) {
357
+ if (filetype ($ baseModels .'/ ' .$ fileName ) != 'dir ' ) {
358
+ require_once $ baseModels .'/ ' .$ fileName ;
387
359
}
388
360
}
389
361
}
390
362
}
391
- Zend_Registry::set ('modulesEnable ' , $ listeModule );
392
- Zend_Registry::set ('modulesHaveApi ' , $ apiModules );
363
+
364
+ Zend_Registry::set ('modulesEnable ' , $ enabledModules );
365
+ Zend_Registry::set ('modulesHaveApi ' , $ enabledApiModules );
393
366
394
367
return $ router ;
395
368
}
396
369
397
370
/** Register the plugins and helpers for the REST controllers. */
398
371
protected function _initREST ()
399
372
{
400
- $ frontController = Zend_Controller_Front::getInstance ();
373
+ $ this ->bootstrap ('FrontController ' );
374
+ $ frontController = $ this ->getResource ('FrontController ' );
401
375
402
376
// register the RestHandler plugin
403
377
$ frontController ->registerPlugin (new REST_Controller_Plugin_RestHandler ($ frontController ));
0 commit comments