您的位置:首页 > 编程语言 > PHP开发

学习php自行开发MVC框架过程(五)

2016-12-26 20:33 323 查看
学习php自行开发MVC框架过程(五)

一、加载控制器

(如果类名和方法名一致的话,该方法则为初始化方法)

我们一般在控制器中写类名为IndexController也有防止类名和方法名重复的因素

先在入口文件index.php中添加一个常量

define('MODULE','app');
在core中的xia.php中的run方法添加处理控制器

<?php
namespace core;
class xia
{
public static $classMap =array();
public $assign;
static public function run()
{

$route = new \core\lib\route();

$controllerClass = $route->controller; //将控制器放到变量挡住
$action = $route->action; //将方法也放到变量当中
$controllerFile = APP.'/controller/'.$controllerClass.'Controller.php';

//var_dump($controllerFile);
$cltrlClass = '\\'.MODULE . '\controller\\'.$controllerClass.'Controller';
//给/app命名一个常量
if(is_file($controllerFile)) //判断该控制器是否存在
{
include $controllerFile; //如果他存在就给他引入进来
$controller = new $cltrlClass();
//p($controller);
$controller->$action();
}else{ //跑出异常
throw new \Exception('找不到控制器'.$controllerClass);
}
}
static public function load($class)
{
//自动加载类库
//new\core\route();
//$class = '\core\route';
//XIA.'/core/route.php';
// p($class);
// p(XIA . $class . '.php');
if(isset($classMap[$class])){
return true;
}
else
{
$class = str_replace('\\', '/', $class);
$file = XIA . '/' . $class . ".php";
if(is_file($file))
{
include $file;
}
else
{
return false;
}
}
}
}

这样我们就完成了加载控制器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc 封装 框架