PHP教程:UCenter的MVC架构
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-03-16
UCenter是采用很经典的MVC架构 UCenter采用index.php单点入口 01.$m = getgpc(''m''); //判断加载哪一个Model
02.$a = getgpc(''a''); //判断加载哪一个Control
03.$release = getgpc(''release'');
04.if(empty($m) && empty($a)) { //如果直接访问则跳转到管理界面
05.header(''Location: admin.php'');
06.exit;
07.}
08.
09.//版本判断
10.if(empty($release)) {
11.define(''RELEASE_ROOT'', "release/20080429/");
12.} elseif(intval($release) != UC_SERVER_RELEASE) {
13.define(''RELEASE_ROOT'', "release/$release/");
14.} else {
15.define(''RELEASE_ROOT'', '''');
16.}
17.//加载基类,基类中定义了很多的方法,所有控制器类都继承于该基类
18.if(file_exists(UC_ROOT.RELEASE_ROOT.''model/base.php'')) {
19.require UC_ROOT.RELEASE_ROOT.''model/base.php'';
20.} else {
21.require UC_ROOT.''model/base.php'';
22.}
23.//判断是否加载的是指定的model
24.if(in_array($m, array(''app'', ''frame'', ''user'', ''pm'', ''pm_client'', ''tag'', ''feed'', ''friend'', ''domain'', ''credit'', ''mail'', ''version''))) {
25.if(file_exists(UC_ROOT.RELEASE_ROOT."control/$m.php")) {
26.include UC_ROOT.RELEASE_ROOT."control/$m.php";
27.} else {
28.include UC_ROOT."control/$m.php";
29.}
30.$classname = $m.''control''; //构造control类,如$m=user时control就为usercontrol
31.$control = new $classname();
32.$method = ''on''.$a; //构造方法名
33.
34.if(method_exists($control, $method) && $a{0} != ''_'') { //如果方法存在且不是私有方法则执行该方法
35.$data = $control->$method();
36.echo is_array($data) ? $control->serialize($data, 1) : $data;
37.exit;
38.} elseif(method_exists($control, ''_call'')) { //否则执行重载
39.$data = $control->_call(''on''.$a, '''');
40.echo is_array($data) ? $control->serialize($data, 1) : $data;
41.exit;
42.} else {
43.exit(''Action not found!'');
44.}
45.} else {
46.exit(''Module not found!'');
47.}
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: PHP教程:时间函数下一篇: PHP教程:PHP解析HTML字符串的问题
关于PHP教程:UCenter的MVC架构的所有评论