快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号