学习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;
}
}
}
}
这样我们就完成了加载控制器
一、加载控制器
(如果类名和方法名一致的话,该方法则为初始化方法)
我们一般在控制器中写类名为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;
}
}
}
}
这样我们就完成了加载控制器
相关文章推荐
- 学习php自行开发mvc框架过程(二)
- 学习php自行开发MVC框架过程(四)
- 学习php自行开发mvc框架过程(一)
- 学习php自行开发MVC框架过程(三)
- 学习php自行开发mvc框架过程(七)
- 学习php自行开发MVC框架过程(六)
- 学习php自行开发mvc框架过程(八)
- 用C++ 进行 ArcGis 开发的入门学习过程
- Moblin MID开发学习笔记 - application launcher安装过程
- 初学者学习PHP开发应该掌握的几段精华代码
- 一步一步学习PHP(1) php开发环境配置
- PHP面向对象开发的学习(二)(PHP100第十九讲)
- PHP面向对象开发的学习(三)(PHP100第二十讲)
- 初学者学习PHP开发应该掌握的几段精华代码
- PHP开发环境配置过程详解
- PHP开发学习要点+12种开发工具
- Silverlight MVC框架学习:基于Cairngorm的Silverlight开发
- 本人在学习PHP过程中的随笔心得
- 面向对象开发学习(五)(PHP第二十一讲)
- 统一软件开发过程学习笔记