注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

背归鸿

博闻强记,厚积薄发!

 
 
 

日志

 
 

PHP实现MVC的思路  

2013-02-06 15:42:21|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

我们需要三个基类:Controller、View、Model ,然后不同的C、V、M分别继承他们就有对应的属性与方法了。

给大家提供一种MVC基类的设计思路,仅供参考:

1. Controller类的设计

一个main()方法,当C载入V的时候调用这个方法,使程序能继续执行下去。

一个getModel($model)方法,在需要调用数据库的时候,调用对应目录的M。

一个display($view)方法,在main()方法中调用,载入对应的V,并掉应V的main()方法;

2.View类的设计与Controller很相似

一个main()方法,当C载入V的时候调用这个方法,使程序能继续执行下去。

一个getModel($model)方法,在需要调用数据库的时候,调用对应目录的M。

一个display($template),调用对应的模板文件,并把数据传递给模板。

3.Model类的设计

可以定义一些属性,例如要操作那些表,操作那些字段等。

一个getDB()方法,获得一个数据库类的实例,(数据库类一般都是用单件模式设计的)

一个load()方法,载入一个数据。

一个add()方法,可以根据定义好的属性自动构造SQL语句,并执行插入操作

一个eidt()方法,同上,但执行修改操作。

一个del()方法,同上,但执行删除操作。

为了能使新手更好的理解我这个思路的工作原理,我们现在模拟一个用户登录的场景,看看MVC是如何工作的

现在假设,所有的数据都提交给index.php,

第一步:

我们提交各get变量,告诉index.php该用哪个C,例如可以这样index.php?controller=user

然后index接收到get变量,什么也不需要做,直接找到/user/controller.php,把所有数据丢给他,本来GET和POST

就是全局的,所以index.php也不需要做什么,直接调用C的main函数就可以了,到此index.php的任务完成。

第二步:

C的main函数开始执行,检查变量,发现用户要执行的登录操作(很简单,你post个变量do=login就可以了),于是

调用 getModel,载入对应的M类(例如/user/models/model.php),并实例化, 调用实例的load方法,载入该用户

的数据资料,判断是否与用户提交的密码一致,如果提交的数据不正确header跳转到出错页面,如果正确,调用

display()方法,载入对应的V(例如/user/views/details.php),并实例化,调用其main()函数,进入第三

步。到此C 的任务已完成,第二不操作均在main函数中进行。

第三步:

你可以选择调用getModel()载入M,重写调取数据,也可以在C实例化V的时候,把参数传过来(例如SESSION),

当V已经确定得到数据以后,display(),载入模板,MVC执行完毕。

NOW OVER!  ! ! ! ! ! ! ! ! 。

  评论这张
 
阅读(322)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018