Example #1
0
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     $moduleManager = new ModuleManager($application);
     $moduleManager->setModulesDirectory($application->getConfig()->application->modulesDirectory);
     $modules = $application->getConfig()->application->modules;
     $moduleManager->registerModules($modules ? $modules->toArray() : []);
     // Setup configs
     $application->getConfig()->merge($moduleManager->getConfigs($application->getModules()));
 }
Example #2
0
 public function testModuleRegister()
 {
     $moduleLoader = new ModuleLoader(DI::getDefault());
     $modules = $moduleLoader->dump(TESTS_ROOT_DIR . '/fixtures/app/modules/', TESTS_ROOT_DIR . '/fixtures/app/config/');
     $app = new Application();
     $app->registerModules($modules);
     $this->assertSameSize($modules, $app->getModules());
     $this->assertTrue(class_exists('Test\\Models\\Fake'));
     $this->assertTrue(class_exists('Test\\Components\\Fake'));
     $this->assertTrue(class_exists('Test\\Services\\Fake'));
 }
Example #3
0
 /**
  * @param Application $application
  * @return array
  */
 public function getNamespaces(Application $application)
 {
     $namespaces = [];
     foreach ($application->getModules() as $module) {
         $namespaces[$module['name']] = $module['dir'];
     }
     $config = $application->getConfig();
     if (isset($config->application->autoload)) {
         $namespaces = array_merge($namespaces, $config->application->autoload->toArray());
     }
     return $namespaces;
 }
Example #4
0
 /**
  * @param Event $event
  * @param Application $application
  * @return mixed
  */
 public function boot(Event $event, Application $application)
 {
     // Initializes router
     $router = new Router(false);
     $router->setDI($application->getDI());
     // default routes
     if (isset($application->getConfig()->application->defaultRoutes)) {
         $defaultRoutesPath = $application->getConfig()->application->defaultRoutes;
         if (file_exists($defaultRoutesPath)) {
             require $defaultRoutesPath;
         }
     }
     // Modules routes
     (new Router\Loader())->autoload($application->getModules(), $router);
     $application->getDI()->setShared('router', $router);
 }