一直用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原理的更多相关文章

  1. ASP.NET MVC原理

    仅此一文让你明白ASP.NET MVC原理   ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...

  2. spring MVC原理

    spring MVC原理   Spring MVC工作流程图   图一   图二    Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt D ...

  3. Spring框架和MVC原理

    Spring框架和MVC原理 目录 Spring框架 SpringMVC工作原理 参考资料 回到顶部 Spring框架 Spring当前框架有20个jar包,大致可以分为6大模块: Core Cont ...

  4. Spring MVC 原理探秘 - 容器的创建过程

    1.简介 在上一篇文章中,我向大家介绍了 Spring MVC 是如何处理 HTTP 请求的.Spring MVC 可对外提供服务时,说明其已经处于了就绪状态.再次之前,Spring MVC 需要进行 ...

  5. Spring MVC 原理探秘 - 一个请求的旅行过程

    1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...

  6. ASP.NET MVC学习(五)之MVC原理解析

    ASP.NET MVC 请求生命周期 生命周期步骤概览 当我们对ASP.NET MVC网站发出一个请求的时候,会发生5个主要步骤: 步骤1:创建RouteTable 当ASP.NET应用程序第一次启动 ...

  7. Spring学习 6- Spring MVC (Spring MVC原理及配置详解)

    百度的面试官问:Web容器,Servlet容器,SpringMVC容器的区别: 我还写了个文章,说明web容器与servlet容器的联系,参考:servlet单实例多线程模式 这个文章有web容器与s ...

  8. Spring MVC原理及配置

    Spring MVC原理及配置 1. Spring MVC概述 Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得 ...

  9. Spring MVC工作原理及源码解析(一) MVC原理介绍、与IOC容器整合原理

    MVC原理介绍 Spring MVC原理图 上图是Spring MVC工作原理图(图片来自网上搜索),根据上图,我们可以得知Spring MVC的工作流程如下: 1.用户(客户端,即浏览器)发送请求至 ...

随机推荐

  1. Codeforces 576D Flights for Regular Customers(矩阵加速DP)

    题目链接  Flights for Regular Customers 首先按照$d$的大小升序排序 然后分成$m$个时刻,每条路径一次处理过来. $can[i][j]$表示当前时刻$i$能否走到$j ...

  2. [原创][FPGA]有限状态机FSM学习笔记(一)

    1. 概述--何为有限状态机FSM? 有限状态机-Finite State Machine,简写为FSM,是表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用.通常 ...

  3. lms111,rplidar 方向和起始角

    上图中,从X反方向是开始,按顺时针方向增加,实际运转方向也为顺时针方向. lms111:正放时:数据按逆时针依次输出.(起始----->结束) 北阳:正放时:数据按逆时针依次输出

  4. vue常用指命

    1.v-text:用于更新标签包含的文本,作用和{{}}的效果一样. 2.v-html:绑定一些包含html代码的数据在视图上. 3.v-show:用来控制元素的display属性,和显示隐藏有关.v ...

  5. MQTT协议介绍

    http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf   MQTT 文档 http://mqtt.org/new/wp-c ...

  6. 高性能内存池NedAlloc

    http://www.nedprod.com/programs/portable/nedmalloc/ http://blog.sina.com.cn/s/blog_6f5b220601012x4t. ...

  7. spring事务详细理解

    数据并发的问题 一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库.数据库中的相同数据可能同时被多个事务访问,如果没有采取必要的隔离措施,就会导致各种并发问题,破坏数据的完整性.这些 ...

  8. Direct2D教程(二)来看D2D世界中的Hello,World

    引子 任何一门语言的第一个教程几乎都是Hello,world.我们也不例外,但是这里不是教大家打印Hello,world,而是编写一个简单的D2D绘制程序,让大家对Direct2D的程序结构及编程方法 ...

  9. 【HDOJ 2089】不要62

    [HDOJ 2089]不要62 第一个数位dp的题 做的老困难了...只是好歹是做出来了 迈出了第一步.. 对大牛来说这样的题都是小case ps:新上一个记忆化方法 一些绕弯的题里用dfs好想些 代 ...

  10. mysql大数据量下修改表结构的方法

    http://www.blogjava.net/anchor110/articles/361152.html