php中控制器,理解PHP中的MVC编程之控制器

<?php

/**

*index.php

*

*@authorJoeStump<joe@joestump.net>

*@copyrightJoeStump<joe@joestump.net>

*@licensehttp://www.opensource.org/licenses/gpl-license.php

*@packageFramework

*/

require_once('config.php');

//{{{__autoload($class)

/**

*__autoload

*

*AutoloadisranbyPHPwhenitcan'tfindaclassitistryingtoload.

*Bynamingourclassesintelligentlyweshouldbeabletoloadmostclasses

*dynamically.

*

*@authorJoeStump<joe@joestump.net>

*@paramstring$classClassnamewe'retryingtoload

*@returnvoid

*@packageFramework

*/

function__autoload($class)

{

$file=str_replace('_','/',substr($class,2)).'.php';

require_once(FR_BASE_PATH.'/includes/'.$file);

}

//}}}

if(isset($_GET['module'])){

$module=$_GET['module'];

if(isset($_GET['event'])){

$event=$_GET['event'];

}else{

$event='__default';

}

if(isset($_GET['class'])){

$class=$_GET['class'];

}else{

$class=$module;

}

$classFile=FR_BASE_PATH.'/modules/'.$module.'/'.$class.'.php';

if(file_exists($classFile)){

require_once($classFile);

if(class_exists($class)){

try{

$instance=new$class();

if(!FR_Module::isValid($instance)){

die("Requestedmoduleisnotavalidframeworkmodule!");

}

$instance->moduleName=$module;

if($instance->authenticate()){

try{

$result=$instance->$event();

if(!PEAR::isError($result)){

$presenter=FR_Presenter::factory($instance->presenter,$instance);

if(!PEAR::isError($presenter)){

$presenter->display();

}else{

die($presenter->getMessage());

}

}

}catch(Exception$error){

die($error->getMessage());

}

}else{

die("Youdonothaveaccesstotherequestedpage!");

}

}catch(Exception$error){

die($error->getMessage());

}

}else{

die("Anvalidmoduleforyourrequestwasnotfound");

}

}else{

die("Couldnotfind:$classFile");

}

}else{

die("Avalidmodulewasnotspecified");

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值