/** * run the web application * * @param array $web_options * * @return void */ public static function run($web_options) { if (!is_array($web_options['action_modules'])) { throw new Exception('action_modules not setted in $options', Errno::PARAM_INVALID); } //get route module & action $route_options = self::get_route_options(); $module_name = empty($route_options['module']) ? 'index' : strtolower($route_options['module']); $action_name = empty($route_options['action']) ? 'index' : strtolower($route_options['action']); //module not found if (!in_array($module_name, $web_options['action_modules'])) { $web = new WebPage(); $web->header_notfound(); echo "Action module not found.\n"; return; } //execute $class_name = "App\\Action\\{$module_name}"; self::$instance = new $class_name($module_name, $web_options); self::$instance->execute($action_name); }