PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 高级应用 >> 

PHP设计模式介绍 第十七章 MVC 模式

PHP设计模式介绍 第十七章 MVC 模式

来源:互联网  作者:  发布时间:2010-05-22
web应用是十分多样化的,为了实现某种应用,那哪种或哪些是最好

model--view--controller程序表的“真实生活”版本看上去与上面显示的“理想”的程序表非常相似。主要添加的是actionfactory引起每个动作,那是一个具体的命令。

 

在很多我开发的MVC运行程序中,第二个调度以默认ShowViewAction进行。

 

这个图显示了第一个调度创建了一个具体的指令ShowViewAction.这个动作反之会使用ViewFactory来创建一个具体的View类,Martin Fowlerj将的MVC关于View的PoEAA部分叫做View Helper。这个视图可以使用你喜欢的模版引擎来选择和解析一个模版文件,填充模版变量:从model取得数据,进而通过模版呈现结果返回给客户端。

这是一种可以提升MVC名誉的图,但是实际上,这张图的各个要素都被添加了,以满足通过组织代码使得维护变简单的需要。

总之,我发现了使用一个特定的框架最显著的障碍就是了解一个框架是怎样运行的以及怎样添加有特殊用途的功能。实际的组织是典型的一次性简单了解,但是起初在没有上下联系的情况下它似乎又很难理解。

贯穿MVC的相关问题:

似乎有很多“什么到哪里”的问题围绕着MVC,你会从不同的MVC拥护者那里收到很多不同的答案。

$_SESSION属于哪里?一个争议是说sessions是不变的数据存储,通常是以文件形式保存在服务器上,因此最好归入model的范畴。第二种说法就是session和其他的php superglobal一样,session数据是输入系统的,因此是属于controller,另外一些开发员认为,sessions是用cookie执行的,一种工作在http上的html里的技术,所以是和view相关联的。

身份认证是属于哪里?它似乎像是应用逻辑的一部分,因此是属于model。但是如果你要限制只有通过验证的用户才能执行特定动作(controller的部分)呢?好,controller可以进入model,所以身份认证归入这里似乎是个完美的划分。但是http认证呢?它也进入到controller吗?

在整个概念中浏览器适合在哪里?很明显是View,对吗?如若你想通过java语言进行验证呢?验证不属于controller和model码?你怎么让它进入View呢?

这些争论都没有平息的迹象,当你在你的MVC实现中试图找出怎么样看待这些你关心的问题时以上每个都导致了一些挑衅的想法。

不含MVC的框架

很明显不是每个框架都围绕着嵌入在MVC模式的想法的分离上。这里是一个关于无MVC的框架想法的小例子

事件处理

 当你在gui环境下工作时,工具一般设置成响应事件。想想button.click().一些php框架试图采取这种为核心思想。在zend的php5编程比赛中认识了prado,它把事件处理作为核心概念。WACT使用Composite pattern来综合controller的概念,每个都有“监听程序”,它能接近事件处理透视图。

控制容器的反向

在java圈子里的一个热门话题就是控制容器的反向(ioc),亦称Dependency Injection  pattern。一个好的介绍这个模式的文章在 http://www.martin- fowler.com/articles/injection.html.

这个模式结合了一个类似Pico的Dependency Injection容器和类似WACT的MVC框架,用以构建一个“autowires”自身的应用,这一模式是是与MVC正交的──这是一个我非常感兴趣的领域


结束语

这里是一个简短的MVC相关设计模式的导航.如果你想寻找完整的PHP下的MVC开发框架,我推荐你看Mojavi(http://www.mojavi.org/);这是一个很好的MVC示例,并且这个项目的开发很活跃,社区也比较有活力。

这一章也许没有能够解决你在web架构方面的任何具体问题,希望能够给你提供一些参考,能够成为你展开相关研究的一个起点,或者能够为你在编写能为PHP开发带来巨大变革的Magic Web Application Architecture时带来一些灵感。


延伸阅读:
理解PHP中的MVC编程之MVC框架简介
MVC模式的PHP实现
从魔兽看PHP设计模式
《PHP设计模式介绍》导言
PHP设计模式介绍 第一章 编程惯用法
PHP设计模式介绍 第二章 值对象模式
PHP设计模式介绍 第三章 工厂模式
PHP设计模式介绍 第四章 单件模式
PHP设计模式介绍 第五章 注册模式
PHP设计模式介绍 第六章 伪对象模式

PHP设计模式介绍 第七章 策略模式
PHP设计模式介绍 第八章 迭代器模式
PHP设计模式介绍 第九章 观测模式
PHP设计模式介绍 第十章 规范模式
PHP设计模式介绍 第十一章 代理模式
PHP设计模式介绍 第十二章 装饰器模式
PHP设计模式介绍 第十三章 适配器模式
PHP设计模式介绍 第十四章 动态记录模式
PHP设计模式介绍 第十五章 表数据网关模式
PHP设计模式介绍 第十六章 数据映射模式


Tags: php   设计模式   MVC模式   设计   MVC   模式   C  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号