mvc加载控制器、模型类以及视图类编写
2016-12-24 13:54
483 查看
一、加载控制器
1)首先我们要创建一个app的文件夹在创建一个控制器的文件夹在里面创建一个index的控制器 由于类名和方法名重复的时候会使方法成为一个初始化的方法 那么解决的办法是将类名后面加一个Controller,这样就能避免发生类似的问题 如下:
2)然后我们在加载控制器的编码部分 首先我们用一个变量存放我们对应的控制器 然后再判断控制器是否存在(在拼接的时候一定要看清路径不然会报错误),当然我们需要引用前面的route类
3)如果控制器存在我们将include进来 然后实例化拼接控制器的路径 执行以下看看是否错误 (如果错误基本上都是拼接路径上出错了)没有错的话我们可以将实例化的内容起一个变量名,然后使用变量名中对应的方法;
二、模型类
1)首先我们要将控制器来链接我们的数据库 我们先要创建一个model类 我们要将这个model类来继承PDO这样它就有自带的方法了 然后我们要写一个初始化的方法 在初始化的方法当中链接我们的数据库,我们来模拟一下链接数据库
这里面也是将数据库需要的参数从配置中读取,注释的是可以直接写死,也可以出来。
2)在控制器中实例化这个model类 然后测试的写一个select查询语句然后用实例化的model类执行sql语句进行输出输出结果说明我们创建的模型已经完成;
这样出来的结果就是我们所查询出来的数组
三、视图类
1)首先我们要在控制器中定义一个我们想要的方法来进行视图层的传数据与显示视图层,例如:
2)之后我们需要让控制器继承这个mvc.php如下图:
3)我们在mvc.php中增加以下两个方法:
然后就可以执行了。
1)首先我们要创建一个app的文件夹在创建一个控制器的文件夹在里面创建一个index的控制器 由于类名和方法名重复的时候会使方法成为一个初始化的方法 那么解决的办法是将类名后面加一个Controller,这样就能避免发生类似的问题 如下:
2)然后我们在加载控制器的编码部分 首先我们用一个变量存放我们对应的控制器 然后再判断控制器是否存在(在拼接的时候一定要看清路径不然会报错误),当然我们需要引用前面的route类
3)如果控制器存在我们将include进来 然后实例化拼接控制器的路径 执行以下看看是否错误 (如果错误基本上都是拼接路径上出错了)没有错的话我们可以将实例化的内容起一个变量名,然后使用变量名中对应的方法;
$route = new \core\lib\route(); $controller = $route->ctrl; $action = $route->action; $ctrlFile = APP.'/controller/'.$controller.'Controller.php'; $ctrlClass = '\\'.MODULE.'\controller\\'.$controller.'Controller'; if (is_file($ctrlFile)) { include $ctrlFile; $ctrl = new $ctrlClass(); $ctrl->$action(); } else { throw new \Exception("找不到次控制器",$controller); }
二、模型类
1)首先我们要将控制器来链接我们的数据库 我们先要创建一个model类 我们要将这个model类来继承PDO这样它就有自带的方法了 然后我们要写一个初始化的方法 在初始化的方法当中链接我们的数据库,我们来模拟一下链接数据库
<?php namespace core\lib; use \core\lib\conf; class model extends \PDO{ public function __construct(){ // $dsn = 'mysql:host=localhost;dbname=ltyhose'; // $username = 'root'; // $passwd = 'root'; $temp = conf::all('database'); var_dump($temp); try { parent::__construct($temp['DSN'],$temp['USERNAME'],$temp['PASSWD']); } catch (\PDOException $e) { var_dump($e->getMessage()); } } }
这里面也是将数据库需要的参数从配置中读取,注释的是可以直接写死,也可以出来。
2)在控制器中实例化这个model类 然后测试的写一个select查询语句然后用实例化的model类执行sql语句进行输出输出结果说明我们创建的模型已经完成;
public function index(){ $sql = "select *from 表明"; $model = new \core\lib\model(); $res = $model->query($sql); var_dump($res->fetchAll()); }
这样出来的结果就是我们所查询出来的数组
三、视图类
1)首先我们要在控制器中定义一个我们想要的方法来进行视图层的传数据与显示视图层,例如:
$this->assign('title',$title);//assign可以自己定义 $this->assign('data',$data); $this->display('index.html');//显示视图层
2)之后我们需要让控制器继承这个mvc.php如下图:
3)我们在mvc.php中增加以下两个方法:
/** * [assign description] * @param [type] $name [变量名] * @param [type] $value [变量值] */ public function assign($name,$value){ $this->assign[$name] = $value; } /** * [display description] * @param [type] $file [文件名] */ public function display($file){ $file = APP.'/views/'.$file; if (is_file($file)) { extract($this->assign);//将数组打散 incl 4000 ude $file; } }
然后就可以执行了。
相关文章推荐
- 简单的mvc加载控制器、模型类以及视图类编写与解析(四)
- iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
- YII模型-视图-控制器 (MVC) 以及应用执行流程
- iOS个人整理05-应用程序的启动流程--视图控制器ViewController的加载过程--MVC架构
- 简单介绍下mvc的路由,加载控制器,模型,视图
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- ASP.NET MVC教程:理解模型、视图和控制器(1)
- MVC(Model View Controller)模型-视图-控制器
- ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图
- ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图
- ASP.NET MVC:理解模型、视图和控制器
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- 模型-视图-控制器(MVC)
- MVC(Model View Controller)模型-视图-控制器
- [翻译:ASP.NET MVC 教程]理解模型、视图和控制器
- ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图 【转】
- ASP.NET MVC教程:理解模型、视图和控制器(2)
- ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图
- ASP.NET中实现模型-视图-控制器(MVC)模式
- 【转】Scott_ASP.NET MVC框架(第三部分) 把ViewData从控制器传到视图