/** * @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())); }
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')); }
/** * @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; }
/** * @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); }