/**
  * 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');
 }
예제 #2
0
 /**
  * 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);
 }