php MVC原理
一直用php的mvc模式,但是一直没深入研究其原理性的东西,今天把最基本的mvc原理模型总结如下:
1、url访问方式 http://127.0.0.1:8080/ceshi.com/index.php?act=user&op=user
2、建立如下的目录结构
3、index.php入口文件
//路由设置
$act = $_GET['act'];
$class = $act.'Control';//获取类名
$op = $_GET['op'];//获取方法 //自动加载类
function __autoload($cla){
if(substr($cla,-7)=="Control"){//control
$cla = str_replace("Control",'',$cla);
require 'control/'.$cla.'.php';
}else{//model
require 'model/'.$cla.'.php';
}
} require('lib/func.php');//公用方法 $control = new $class();
$control->$op();
4、公共方法lib/func.php
function Model($model = null){
//$file_name = 'model/'.$model.'Model.php';
$class_name = $model.'Model'; //require($file_name);
return new $class_name();//类名
}
/**
* 格式化打印数据
**/
function p($v,$k=false){
echo "<pre>";print_r($v);echo"</pre>";
$k && exit();
}
5、Model基类model/Model.php
class Model{
public $mysqli = null;
public function __construct(){
$this->mysqli = new MySQLi("localhost","root","","test");
}
}
6、Model子类(常用类)model/test.model.php
class testModel extends Model{
public function dataList(){
$sql = "select * from article";
$encode = $this->mysqli->query("set names gb2312");
$datalist = $this->mysqli->query($sql);
$listarr = array();
while($row = $datalist->fetch_assoc()){
$listarr[] = $row;
}
return $listarr;
}
}
7、control control/user.php
class userControl{
public function user(){
//echo 'user';
$test_model = Model('test');
$list = $test_model->dataList();
include('view/user_list.php');//此处用模板引擎处理
p($list);
}
}
8、视图文件 view/user.list.php
$arr = array('a',1,'b');
foreach($arr as $k=>$v){
echo $v.'<br />';
}
9、最终结果
php MVC原理的更多相关文章
- ASP.NET MVC原理
仅此一文让你明白ASP.NET MVC原理 ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...
- spring MVC原理
spring MVC原理 Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt D ...
- Spring框架和MVC原理
Spring框架和MVC原理 目录 Spring框架 SpringMVC工作原理 参考资料 回到顶部 Spring框架 Spring当前框架有20个jar包,大致可以分为6大模块: Core Cont ...
- Spring MVC 原理探秘 - 容器的创建过程
1.简介 在上一篇文章中,我向大家介绍了 Spring MVC 是如何处理 HTTP 请求的.Spring MVC 可对外提供服务时,说明其已经处于了就绪状态.再次之前,Spring MVC 需要进行 ...
- Spring MVC 原理探秘 - 一个请求的旅行过程
1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...
- ASP.NET MVC学习(五)之MVC原理解析
ASP.NET MVC 请求生命周期 生命周期步骤概览 当我们对ASP.NET MVC网站发出一个请求的时候,会发生5个主要步骤: 步骤1:创建RouteTable 当ASP.NET应用程序第一次启动 ...
- Spring学习 6- Spring MVC (Spring MVC原理及配置详解)
百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与s ...
- Spring MVC原理及配置
Spring MVC原理及配置 1. Spring MVC概述 Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得 ...
- Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理
MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...
随机推荐
- doT.js-doT模板方便快捷的组织页面DOM
重来没有想过,作为一个坐吃等死的前端也会有学习引擎模板的一天 都是被现实所逼呀.学习优秀代码时,一句一句翻译.忽然看到{{ }}这个包裹的代码.糟心了!看不懂,咋办?学呀!!!!!! 这是我开始学 ...
- Leetcode总结之DFS
package DFS; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; impo ...
- Maven依赖机制理解
假设一个项目需要用到日志组件Log4j,那么有如下方式添加这个组件. 一.传统方式: 1.访问官网https://logging.apache.org/log4j/2.x/download.html, ...
- Go -- FIFO类(缓存淘汰算法)(转)
1 FIFO 1.1. 原理 按照“先进先出(First In,First Out)”的原理淘汰数据. 1.2. 实现 FIFO队列,具体实现如下: 1. 新访问的数据插入FIFO队列尾部,数据在FI ...
- 关于查看python的trace的方法
lptrace本质上是基于GDB的,进入到进程内存空间,然后执行了一段python指令把当时的trace给print出来 使用工具:https://github.com/khamidou/lptrac ...
- log4net菜鸟指南二----生成access和txt
前言 有可能目标计算机缺少某些组件,导致无法生成access文件,或者打不开文件,这时txt文件就可以方便的使用了 一,标准的控制台程序输出日志到access <?xml version=&qu ...
- Git以及github的使用方法(五),暂存区和工作区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
- OpenCV入门笔记(一) Linux下的安装
关于OpenCV,有中文的官方站点.里面翻译了官网的教程和API等.中文官方Tutorials见这里:[Tutorials] 一.Ubuntu下的安装 能够选择直接从库里安装,或者手动编译安装,请參考 ...
- SpringMVC:JSON
@ResponseBody params="json":访问我这个方法的时候一定要有参数名为json 返回值Userjackson-all-1.9.0.jar @RequestMa ...
- FTPClient listFiles 阻塞问题
Android端使用 FTPClient 实现上传文件到到filezilla server(filezilla server部署在阿里云服务器)出现 listFiles阻塞.具体的现象是 Ftp Cl ...