简单的mvc加载控制器、模型类以及视图类编写与解析(四)
2016-09-29 14:25
260 查看
一、加载控制器
1)首先我们要创建一个app的文件夹在创建一个控制器的文件夹在里面创建一个index的控制器 由于类名和方法名重复的时候会使方法成为一个初始化的方法 那么解决的办法是将类名后面加一个Controller,这样就能避免发生类似的问题
2)然后我们在加载控制器的编码部分 首先我们用一个变量存放我们对应的控制器 然后再判断控制器是否存在(在拼接的时候一定要看清路径不然会报错误)
3)如果控制器存在我们将include进来 然后实例化拼接控制器的路径 执行以下看看是否错误 (如果错误基本上都是拼接路径上出错了)没有错的话我们可以将实例化的内容起一个变量名,然后使用变量名中对应的方法;
$ctrlClass=$route->ctrl;
$action=$route->action;
// p($action);exit();
$ctrlfile=APP.'/ctrl/'.$ctrlClass.'Ctrl.php';
$cltrClass='\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
// p($ctrlfile);EXIT();
if(is_file($ctrlfile)){
include $ctrlfile;
$ctrl=new $cltrClass();
$ctrl->$action();
}else{
throw new \Exception('找不到控制器'.$ctrlClass);
}二、模型类
1)首先我们要将控制器来链接我们的数据库 我们先要创建一个model类 我们要将这个model类来继承PDO这样它就有自带的方法了 然后我们要写一个初始化的方法 在初始化的方法当中链接我们的数据库,我们来模拟一下链接数据库
$dsn=>'mysql:host=localhost;dbname=库名',
$username=>'数据库名称',
$passwd=>'数据库密码'
try{
parent::__construct($dsn,$username,$passwd);
}catch(\PDOException $e){
p($e->getMessage());
}
2)在控制器中实例化这个model类 然后测试的写一个select查询语句然后用实例化的model类执行sql语句进行输出输出结果说明我们创建的模型已经完成;
$model =new \core\lib\model();
$sql="select *from 表名";
$arr=$model->query($sql);
p($arr->fetchAll());
1)首先我们要创建一个app的文件夹在创建一个控制器的文件夹在里面创建一个index的控制器 由于类名和方法名重复的时候会使方法成为一个初始化的方法 那么解决的办法是将类名后面加一个Controller,这样就能避免发生类似的问题
2)然后我们在加载控制器的编码部分 首先我们用一个变量存放我们对应的控制器 然后再判断控制器是否存在(在拼接的时候一定要看清路径不然会报错误)
3)如果控制器存在我们将include进来 然后实例化拼接控制器的路径 执行以下看看是否错误 (如果错误基本上都是拼接路径上出错了)没有错的话我们可以将实例化的内容起一个变量名,然后使用变量名中对应的方法;
$ctrlClass=$route->ctrl;
$action=$route->action;
// p($action);exit();
$ctrlfile=APP.'/ctrl/'.$ctrlClass.'Ctrl.php';
$cltrClass='\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
// p($ctrlfile);EXIT();
if(is_file($ctrlfile)){
include $ctrlfile;
$ctrl=new $cltrClass();
$ctrl->$action();
}else{
throw new \Exception('找不到控制器'.$ctrlClass);
}二、模型类
1)首先我们要将控制器来链接我们的数据库 我们先要创建一个model类 我们要将这个model类来继承PDO这样它就有自带的方法了 然后我们要写一个初始化的方法 在初始化的方法当中链接我们的数据库,我们来模拟一下链接数据库
$dsn=>'mysql:host=localhost;dbname=库名',
$username=>'数据库名称',
$passwd=>'数据库密码'
try{
parent::__construct($dsn,$username,$passwd);
}catch(\PDOException $e){
p($e->getMessage());
}
2)在控制器中实例化这个model类 然后测试的写一个select查询语句然后用实例化的model类执行sql语句进行输出输出结果说明我们创建的模型已经完成;
$model =new \core\lib\model();
$sql="select *from 表名";
$arr=$model->query($sql);
p($arr->fetchAll());
相关文章推荐
- mvc加载控制器、模型类以及视图类编写
- 简单介绍下mvc的路由,加载控制器,模型,视图
- iOS开发UIViewCOntroller视图控制器之间跳转切换举例,以及视图控制器生命周期的简单说明
- 简单的mvc入口文件的编写与解析(一)
- MVC控制器与视图的简单约定
- YII模型-视图-控制器 (MVC) 以及应用执行流程
- iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
- Java类的加载过程以及单例模式的简单解析
- MVC3学习第十一章 葵花点穴手之隔空点穴----MVC3下利用EF和LINQ进行简单的多表联查、排序以及在Razor视图中调用自定义类
- iOS个人整理05-应用程序的启动流程--视图控制器ViewController的加载过程--MVC架构
- 简单的mvc类自动加载的编写与解析(二)
- 简单的mvc配置加载类与日志类的编写与解析
- 简单的mvc类自动加载的编写与解析(二)
- MVC视图与控制器分离简单描述
- 【iOS开发-20】UIViewCOntroller视图控制器之间跳转切换举例,以及视图控制器生命周期的简单说明
- SpringMVC学习笔记(2)-----简单的编写控制器和JSP视图
- [Linux学习日记]Ubuntu推荐软件以及简单脚本编写
- ASP.NET MVC教程:理解模型、视图和控制器(5)(完)
- ASP.NET MVC教程:理解模型、视图和控制器(2)
- nodeName、nodeValue 以及 nodeType 简单解析