MVC模式的PHP实现(1)

原创 2003年10月20日 10:42:00

MVC模式的PHP实现

原作:Harry Fuecks

翻译:Easy Chen

 

MVC模式在网站架构中十分常见。它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

视图(View

 

 视图主要指我们送到Web浏览器的最终结果——比如我们的脚本生成的HTML。当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的。

 

对视图来说,最重要的事情可能是它应该是自我意识(self aware的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色。

 

XML为例,可以说XML在被解析时,DOM API有着这样的认知——一个DOM树里的节点知道它在哪里和它包含了什么。 (当一个XML文档中的节点用SAX解析时只有当解析到该节点时它才有意义。)

 

绝大多数模板方案使用简单的过程语言和这样的模板标签:

 

<p>{some_text}</p>
<
p>{some_more_text}</p>

 

它们在文档中没有意义,它们代表的意义只是PHP将用其他的东西来替换它。

如果你同意这种对视图的松散描述,你也就会同意绝大多数模板方案并没有有效的分离视图和模型。模板标签将被替换成什么存放在模型中。

在你实现视图时问自己几个问题:全体视图的替换容易吗?”“实现一个新视图要多久?” “能很容易的替换视图的描述语言吗?(比如在同一个视图中用SOAP文档替换HTML文档)

 

模型(Model

 

模型代表了程序逻辑。(在企业级程序中经常称为业务层(business layer))

总的来说,模型的任务是把原有数据转换成包含某些意义的数据,这些数据将被视图所显示。通常,模型将封装数据查询,可能通过一些抽象数据类(数据访问层)来实现查询。举例说,你希望计算英国年度降雨量(只是为了给你自己找个好点的度假地),模型将接收十年中每天的降雨量,计算出平均值,再传递给视图。

 

控制器(controller

 

简单的说控制器是Web应用中进入的HTTP请求最先调用的一部分。它检查收到的请求,比如一些GET变量,做出合适的反馈。在写出你的第一个控制器之前,你很难开始编写其他的PHP代码。最常见的用法是index.php中像switch语句的结构:

 

<?php
switch ($_GET['viewpage']) {
    case 
"news":
        
$page=new NewsRenderer;
    break;
    case 
"links":
        
$page=new LinksRenderer;
    break;
    default:
        
$page=new HomePageRenderer;
    break;
}
$page->display();
?>

 

这段代码混用了面向过程和对象的代码,但是对于小的站点来说,这通常是最好的选择。虽然上边的代码还可以优化。

控制器实际上是用来触发模型的数据和视图元素之间的绑定的控件。

 

PS:本来是一个帖子的;可是死活贴不上来 -________-b 只好腰斩了

Part1 http://www.csdn.net/Develop/read_article.asp?id=21639

Part2 http://www.csdn.net/Develop/read_article.asp?id=21640

Part3 http://www.csdn.net/Develop/read_article.asp?id=21641

php mvc模式

网上很多介绍mvc模式的,刚开始我不会的时候,看的也是特别的模糊看不懂,今天就用通俗易懂的话来说一下我对mvc模式的应用和理解: 1.首先要分清楚“m”,“v”,“c”分别代表什么,什么意思:m代表...
  • baidu_22777475
  • baidu_22777475
  • 2015年05月04日 11:41
  • 327

PHP---分层模式和mvc模式

继续昨天没完的内容,分层开发模式。 分层开发模式分析:     可读性、维护性、扩展性相比model1模式有了明显改善,但是也有不足。     有些页面既充当了界面,同时又去响应用户的各种请求,...
  • huyishero
  • huyishero
  • 2016年12月16日 23:45
  • 528

MVC模式及MVC1和MVC2模式的区别

M:Model 程序的业务V:View 程序的界面C:Controller 程序的控制部分=================================================...
  • hongtashan11
  • hongtashan11
  • 2011年04月28日 11:16
  • 665

PHP简单实现MVC框架路由功能模式

说到使用PHP进行网站开发,自然离不开各种PHP的开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等等,让我们的开发更为快捷方便。但是很多人只是会使用框架,却从来不去了解框架的内部...
  • Zhihua_W
  • Zhihua_W
  • 2016年11月15日 09:11
  • 4773

php搭建mvc框架二(类的自动加载)

首先呢这是在上一篇的基础上继续写的!! 目录: 自动加载类: spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载。因此,不再建议使用 __a...
  • wzl0310
  • wzl0310
  • 2016年12月26日 09:22
  • 13650

MVC模式的PHP实现(1)

MVC模式的PHP实现 原作:Harry Fuecks 翻译:Easy Chen   MVC模式在网站架构中十分常见。它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协...
  • flappy_man
  • flappy_man
  • 2004年08月01日 15:02
  • 516

基于MVC设计模式实现简单PHP框架(雏形)-初期

(记住:这里只是提供思考的过程)        其实这里只是一个我们课的Web实验”课程设计题目统计系统“,在做实验的过程中起初只是想往MVC靠拢而已,却不知不觉地“实现”了基于MVC的简单框...
  • qq_15096707
  • qq_15096707
  • 2016年04月22日 21:38
  • 2254

基于JavaEE架构模式下的MVC

对于MVC准确的定义
  • liu251
  • liu251
  • 2011年02月21日 14:30
  • 4314

基于MVC模式的Struts框架概述

作者:yarshray 关键字: Java  J2EE  MVC  JSP  Servlet  MVC  Struts 内容简介:       MVC设计模式成为了目前十分流行的一种设计方法.它是一种...
  • yarshray
  • yarshray
  • 2005年04月20日 23:10
  • 5887

初识JavaEE设计模式-MVC

1.Servlet VS JSP          最开始设计的是Servlet,是为了在服务器端替代CGI,因为对于CGI每次调用都会重新起一个进程。而Servlet是起一个线程,开销较小。  ...
  • vincentff7zg
  • vincentff7zg
  • 2015年03月22日 20:47
  • 915
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MVC模式的PHP实现(1)
举报原因:
原因补充:

(最多只允许输入30个字)