首页 > 后端开发 > php教程 > 下面这个路由的写法如何理解

下面这个路由的写法如何理解

WBOY
发布: 2016-06-23 13:13:55
原创
1053 人浏览过

/**
* 控制器调度
*
*/
private static function control(){
//二级域名
if ($GLOBALS['setting_config']['enabled_subdomain'] == '1' && $_GET['act'] == 'index' && $_GET['op'] == 'index'){
$store_id = subdomain();
if ($store_id > 0) $_GET['act'] = 'show_store';
}
$act_file = realpath(BASE_PATH.'/control/'.$_GET['act'].'.php');
$class_name = $_GET['act'].'Control';
if (!@include($act_file)){
   if (C('debug')) {
       throw_exception("Base Error: access file isn't exists!");
   } else {
       showMessage('抱歉!您访问的页面不存在','','html','error');
   }
}
if (class_exists($class_name)){
$main = new $class_name();
$function = $_GET['op'].'Op';
if (method_exists($main,$function)){
$main->$function();
}elseif (method_exists($main,'indexOp')){
$main->indexOp();
}else {
$error = "Base Error: function $function not in $class_name!";
throw_exception($error);
}
}else {
$error = "Base Error: class $class_name isn't exists!";
throw_exception($error);
}
}


回复讨论(解决方案)

把get里面的$act和$Op接下来,然后act是控制器的名字,将act接下来之后拼装成$actControl,然后引入文件,引入文件失败就抛异常,找到文件之后判断是否有$OpOp这个方法,如果没有就调用indexOp方法,如果还是没有就抛出方法不存在异常

发代码段能不能用代码格式啊= =看的头疼。。

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板