码迷,mamicode.com
首页 > Web开发 > 详细

MVC 模型、视图、控制及其单入口文件的mvc的工作原理

时间:2015-05-01 00:26:54      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

     什么是mvc,mvc就是模型视图控制,模型就是model,在项目中负责数据库相关的操作,视图就是view ,负责页面的展示和数据的展示,控制就是controller ,负责中间的逻辑转换,数据的接收,输出的处理。mvc的好处是让项目开发能够让代码和页面尽可能的分解开,相互之间的关联尽可能的少。这只是一种开发方式,据说是从java过来的,真是坑人的java啊。

     常见的php框架基本上都属于mvc的开发模式,例如:Yii(大赞),Ci,Tp(国产),这几个是我用到过的,还有很多php的框架太多了,就不一一例举了,开发模式大同小异,这里我为什么大赞Yii 这个框架呢,因为这个框架设计的太强大了,不愧是全栈框架,像ci和tp 就是一般的框架了,功能不多。没啥亮点,呵呵。

     开发流程是什么,一般在项目目录下面有一个叫做controller的文件夹,里面写控制器,在和他(一般)平级的目录view中放入视图也就是页面,还有一个model的目录,放着和数据库表相关的数据表命名的model文件 ,主要是在controller 里面写功能,然后使用model文件里面提供的方法对数据库进行增删改查。视图,一般是在控制器里面直接调用,Yii就是$this->render(),CI就是$this->load->view(),TP就是$this->display();这几个方法基本上就是直接输出数据 然后echo出来。或者是加上第三个参数通过ob_start() ob_get_contents()这样的方法获取buffer 内容return 出来,再根据具体需求做处理

     什么是单入口(index.php)

单入口一般就是只把一个文件index.php暴露出来,能够通过这个文件访问相关的内容,这种模式的工作原理是什么呢?其实就是通过index.php,将系统的核心文件载入进来,然后再通过核心文件里面的路由类对,请求的内容进行解析,解析出来要访问的Controller类和其中的方法。看不懂没关系直接上图;

当我们访问deme/index.php/welcome/index

技术分享

以Ci为例:

     首先将这样的一个目录暴露出来技术分享,能够访问到index.php,这个时候index,php文件开始执行,打开这个文件我们跟着代码走技术分享首先定义了一下环境常量,

然后定义一些技术分享项目目录常量为后面加载文件做准备,然后略过部分走到index.php的最下面

技术分享这里就开始真正的工作了开始引入系统核心文件。

我们打开这个文件看看到底写了点什么东西,打开里面依然是引入各种常量,配置文件,继续走我们看到有一行这个技术分享

这是什么?我们打印出来看看技术分享这就是那个系统核心的路由类。

继续往下看技术分享我们看到有一个叫做$RTR->class 类的属性,打印出来,我们看到了什么,技术分享

看到技术分享两个字符串,一个是welcome,一个是index,welcome就是默认要访问的控制器,index就是我们要访问的方法名称。好了,这个时候就真正开始启动了,这个时候先判断文件是否存在,如果存在就引入,不存在就404,然后 $c = new Controller();如图:

技术分享先把要访问的类加载,然后实例化一个,技术分享然后再调用call_user_func_array这个函数,执行实例化对象的方法,就相当于 $welcome = new Welcome();

然后再执行 $welcome->index();

好了整个过程大概就是这个样子,如果不懂可以多看几眼,体会一下,就能理解了,有机会我也写一个简单的mvc,单入口文件的框架,这样能够让大家更清楚的理解这个东西。

MVC 模型、视图、控制及其单入口文件的mvc的工作原理

标签:

原文地址:http://www.cnblogs.com/sepp/p/4470100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!