public static function init() { global $_F; $dispatcher = new FDispatcher(); if (!isset($_F['uri'])) { self::getURI(); } $c = isset($_GET['c']) ? $_GET['c'] : null; $a = isset($_GET['a']) ? $_GET['a'] : null; if (!$c || !$a) { $dispatcher->_checkRouter($c, $a); } if (!$c || !$a) { if ($_F['uri'] == '/' || $_F['uri'] == '' || $_F['uri'] == '/index') { $c = 'index'; $a = 'default'; } else { $path_info = explode('/', $_F['uri']); if (isset($path_info[3])) { $_F['app'] = $app = $path_info[1]; $c = $path_info[2]; $a = $path_info[3]; } elseif (isset($path_info[2])) { $c = $path_info[1]; $a = $path_info[2]; } elseif (isset($path_info[1])) { $c = $path_info[1]; $a = 'default'; } } } if (!empty($_F['app'])) { $_F['controller'] = 'Controller_' . ucfirst($_F['app']) . '_' . ucfirst($c); } elseif ($_F['module']) { $_F['controller'] = 'Controller_' . ucfirst($_F['module']) . '_' . ucfirst($c); } else { $_F['controller'] = 'Controller_' . ucfirst($c); } $_F['action'] = $a; }
public static function init() { global $_F; $configModule = FConfig::get('global.modules'); if ($configModule) { $_F['modules'] = explode(',', str_replace(' ', '', FConfig::get('global.modules'))); } $dispatcher = new FDispatcher(); if (!isset($_F['uri'])) { self::getURI(); } $c = isset($_GET['c']) ? $_GET['c'] : null; $a = isset($_GET['a']) ? $_GET['a'] : null; if (!$c || !$a) { $dispatcher->_checkRouter($c, $a); } if (!$c || !$a) { if ($_F['uri'] == '/' || $_F['uri'] == '' || $_F['uri'] == '/index') { if ($_F['modules']) { $_F['module'] = $app = $_F['modules'][0]; } $c = 'index'; $a = 'index'; } else { $path_info = explode('/', trim($_F['uri'], '/')); /* * 处理 URL 中直接传 ID 的情况 */ if (is_numeric($path_info[2])) { $_GET['id'] = $path_info[2]; unset($path_info[2]); } elseif (is_numeric($path_info[1])) { $_GET['id'] = $path_info[1]; unset($path_info[1]); } if ($_F['modules']) { if (in_array($path_info[0], $_F['modules'])) { $_F['module'] = $app = $path_info[0]; /* * 处理一下 URL: * 情况1: /mobile * 情况2: /mobile/user */ switch (sizeof($path_info)) { case 1: // 情况1: /mobile $path_info[1] = 'index'; $path_info[2] = 'index'; break; case 2: // 情况2: /mobile/user $path_info[2] = 'index'; break; } } else { $_F['module'] = $app = $_F['modules'][0]; } } if (isset($path_info[2])) { $c = $path_info[1]; $a = $path_info[2]; } elseif (isset($path_info[1])) { $c = $path_info[0]; $a = $path_info[1]; } elseif (isset($path_info[0])) { $c = $path_info[0]; $a = 'index'; } } } if (!empty($_F['app'])) { $_F['controller'] = 'Controller_' . ucfirst($_F['app']) . '_' . ucfirst($c); } elseif ($_F['module']) { $_F['controller'] = ucfirst($_F['module']) . ucfirst($c) . 'Ctrl'; } else { $_F['controller'] = ucfirst($c) . 'Ctrl'; } $_F['action'] = $a; }