public static function execute() { if ($uri = trim(router::$uri, '/')) { router::$arguments = explode('/', $uri); router::$module = array_shift(router::$arguments); router::$controller = array_shift(router::$arguments); router::$action = array_shift(router::$arguments); } else { //当$uri 为空,则尝试Query_string模式 router::$arguments = $_GET; router::$module = arr::take('module', router::$arguments); router::$controller = arr::take('controller', router::$arguments); router::$action = arr::take('action', router::$arguments); } }
/** * 解析URI * * URI 由模块名/控制器/动作/参数组成,采用如下的格式: * * @code php * module/controller/action/param1/vlaue1/param2/value2 * @endcode * */ public static function execute() { if ($uri = trim(router::$uri, '/')) { router::$arguments = explode('/', $uri); //分配module、controller、action router::$module = array_shift(router::$arguments); router::$controller = array_shift(router::$arguments); router::$action = array_shift(router::$arguments); //处理参数 $arguments = array(); for ($i = 0, $cnt = count(router::$arguments); $i < $cnt; $i++) { $arguments[$i] = rawurldecode(router::$arguments[$i]); } router::$arguments = $arguments; //unset($_GET['zotop']); //$_GET = array_merge($_GET, array('module'=>router::$module,'controller'=>router::$controller,'action'=>router::$action), $arguments); } else { //当$uri 为空,则尝试Query_string模式 router::$arguments = $_GET; router::$module = arr::take('module', router::$arguments); router::$controller = arr::take('controller', router::$arguments); router::$action = arr::take('action', router::$arguments); } }
/** * 返回当前的模块名称 * * @return string */ public static function module() { $module = router::module(); if (empty($module)) { $module = application::$module; } return $module; }
public static function controllerPath() { $controller = router::controller(); if ($controller) { return zotop::module(router::module(), 'root') . DS . router::application() . DS . router::controller() . '.php'; } return ''; }
/** * 返回当前的模块名称 * * @return string */ public static function getModule() { $module = router::module(); if (empty($module)) { $module = zotop::application(APP_NAME, 'module'); } return empty($module) ? 'zotop' : $module; }
public static function module($id = '') { $id = empty($id) ? router::module() : $id; if ($id) { return zotop::module($id, 'url'); } return ''; }
public static function module($id = '') { $id = empty($id) ? router::module() : $id; return module::setting($id, 'url'); }