/** * Load all needed modules */ private function initializeModules() { $list = array(); $module_dir = AgaviToolKit::literalize("%core.module_dir%"); $files = scandir($module_dir); AppKitAgaviUtil::initializeModule('AppKit'); foreach ($files as $file) { if ($file == '.' || $file == '..') { continue; } if (!is_dir($module_dir . "/" . $file) || !is_readable($module_dir . "/" . $file)) { continue; } $list[] = $file; } $available_modules = array(); foreach ($list as $mod_name) { try { if (in_array($mod_name, self::$excludeModules) === false) { AppKitAgaviUtil::initializeModule($mod_name); $available_modules[$mod_name] = $module_dir . "/" . $mod_name; } } catch (AgaviDisabledModuleException $e) { } } AgaviConfig::set("org.icinga.modules", $available_modules); AppKitAgaviUtil::initializeModule('Config'); }
/** * Starts an agavi context for testing purposes. This was bundled into the * test bootstrap method to call this only once * @param string $env Name of the context * @return AgaviContext The created context */ public function bootstrapAgavi($env = 'testing', array $modules = array()) { require IcingaWebTestTool::getRootPath() . '/lib/agavi/src/agavi.php'; AgaviConfig::set('core.testing_dir', IcingaWebTestTool::getTestPath()); AgaviConfig::set('core.app_dir', IcingaWebTestTool::getRootPath() . DIRECTORY_SEPARATOR . 'app'); AgaviConfig::set('core.root_dir', IcingaWebTestTool::getRootPath()); Agavi::bootstrap($env); AgaviConfig::set('core.default_context', $env); AppKitAgaviUtil::initializeModule('AppKit'); AppKitAgaviUtil::initializeModule('Api'); foreach ($modules as $module) { AppKitAgaviUtil::initializeModule($module); } AgaviConfig::set('core.context_implementation', 'AppKitAgaviContext'); return AgaviContext::getInstance($env); }