`
evget
  • 浏览: 144669 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类

MVC真的适合PHP么?

阅读更多
  MVC的原型

  MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

  JAVA中的MVC

  JAVA把MVC引入了Web领域,并在此基础上架构出了一套称为Model2的体系。由于Web的特殊性,JAVA中的MVC和Desktop中的MVC并不完全一致。主要原因是Web中的V不是持续的,用户每访问一次,V就要重新生成一次,所以V始终是和M一致的,不需要C来控制同步。那么JAVA中的C在干什么?JAVA中的C通常用于流程的转向,其实用的是Dispatch模式,不再是Desktop中的C了。

  PHP中的MVC

  要在PHP中原封不动的COPY JAVA的MVC是不可能的。问题主要表现在M上,在JAVA中,M是独立于业务逻辑和表现逻辑的数据模型,在服务器端跨页面存在,JAVA Bean扮演的就是这个脚色。而PHP进程并不长时间驻留于内存,只在PHP页面开始执行时创建,在页面解释执行结束时就已经结束。在这样的情况下,我们根本无法直接实现M。所以所有声称实现了MVC模式的PHP程式都只能通过模拟手段来实现M。实现的方式一般是在当前页面结束前把数据存入数据库或者cookie/session,在下一个页面中再透过数据库或者cookie/session重建M。这样的方式和JAVA中的Bean比起来可以说是开销巨大,本来往内存中写数据的简单操作现在要从服务器端传到客户端或者数据库,然后再传回来。与其用这么大的开销来维护一个数据模型再在最后把这个模型塞回数据库,还不如直接根据需要更新数据库里边的数据。

  现在PHP中的MVC架构可以用下图来表示。

 

  然后我们再来看V。现在很多PHP程序简单的使用了一些模板技术就在说明中写“采用MVC架构”。其实绝大多数的PHP模板程序都只是分离HTML和PHP的,而非MVC强调的显示逻辑和业务逻辑分离。一个混用HTML和PHP的页面一样可以是MVC的一部份。如何分离显示逻辑和业务逻辑至今没有一个满意的方案。我个人则比较认同http://www.phpe.net/articles/384.shtml的实现方案。至于C,和JAVA中差不多,还是被用作转向,这个在PHP中其实并不重要。

  一个极耗资源的M + 一个区别不大的V + 可有可无的C 构成了PHP中所谓的MVC。

  基于以上分析,Easy认为,PHP原有的3层构架比所谓的MVC更为高效,而3层构架中的表现层要解决的问题MVC中的V也同样存在。一个改进后的3层架构比MVC更适用于PHP。

文章出处:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9086
分享到:
评论

相关推荐

    MVC.zip_MVC??_mvc_mvc 数据库

    **MVC模式与数据库交互详解** MVC(Model-View-Controller)模式是一种软件设计模式,广泛应用于构建Web应用程序,特别是在使用PHP、Java、.NET等后端开发语言时。这个模式将应用逻辑分为三个主要组件:模型(Model...

    PHP MVC

    **PHP MVC 框架详解** 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,而MVC(Model-View-Controller)模式是软件设计中的一个经典架构,用于分离业务逻辑、数据处理和用户界面。PHP MVC框架的出现,使得...

    PHP与MVC

    **PHP与MVC模式** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域,PHP以其简洁、高效的特点受到了广大开发者的喜爱。MVC(Model-View-Controller)模式是一种软件设计模式,常...

    coremvc php mvc

    在IT行业中,`CoreMvc`通常指的是一个针对PHP框架的核心MVC(Model-View-Controller)实现。MVC模式是一种广泛应用于Web应用开发的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,提高了代码的可维护性...

    PHPMVC架构搭建

    PHP MVC(Model-View-Controller)架构是一种设计模式,常用于构建动态的、数据库驱动的Web应用程序。这种架构模式将应用程序的不同部分分离,使代码更易于维护和扩展。以下是关于PHP MVC架构搭建的详细说明: 1. *...

    MVC模式与PHP开发框架——MVC模式与PHP开发框架

    **MVC模式与PHP开发框架详解** MVC(Model-View-Controller)模式是一种软件设计模式,它在Web应用中广泛使用,旨在提高代码的可维护性和可扩展性。MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和...

    PHP mvc框架

    **描述** "使用PHP开发自己的MVC框架,站点其实很简单,一个ToDo程序" 提示我们,这里将涉及如何用PHP构建一个简单的MVC框架,并通过一个Todo应用来演示其功能。Todo应用通常是一个基础的待办事项列表,用于展示基本...

    php mvc技术实现大全

    **PHP MVC技术实现大全** PHP MVC(Model-View-Controller)模式是一种常见的软件设计模式,尤其在Web开发中被广泛采用。它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),以...

    PHP MVC 的实例

    【PHP MVC 模式简介】 MVC(Model-View-Controller)模式是一种软件设计模式,广泛应用于Web开发中,旨在分离应用程序的业务逻辑、数据处理和用户界面展示。这种架构模式使得代码更易于维护和扩展。 【Model层】 ...

    PHPmvc框架项目

    在IT行业中,PHP MVC框架是Web开发领域中的一个重要概念,尤其对于那些想要构建高效、可扩展和易于维护的Web应用程序的开发者来说。本项目“PHPmvc框架”旨在提供一个自定义的、基于Model-View-Controller(模型-...

    PHP的无框架的MVC开发方案

    在PHP开发中,MVC(Model-View-Controller)架构模式是一种常见的设计模式,它将应用程序分为三个主要组件:模型、视图和控制器,以实现数据处理与展示的分离,提高代码可读性和可维护性。然而,并非所有的项目都...

    php mvc案例下载

    PHP MVC(Model-View-Controller)模式是一种广泛应用于Web开发中的设计模式,它将应用程序的逻辑分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。本案例下载提供了一个具体的PHP MVC实现,...

    PHP实现简单MVC

    **PHP实现简单MVC模式详解** MVC(Model-View-Controller)模式是一种软件设计模式,广泛应用于Web应用开发中,旨在分离业务逻辑、数据处理和用户界面展示。在PHP中实现MVC可以帮助我们构建更清晰、可维护的代码...

    PHP的MVC实现_代码

    **PHP的MVC模式详解与实现** MVC(Model-View-Controller)是一种软件设计模式,广泛应用于Web开发中,特别是在PHP这样的服务器端脚本语言中。它将应用程序的业务逻辑、用户界面和数据访问分离开来,使得各部分可以...

    php模式MVC详细分析

    1. 用户提交登录请求,URL类似`index.php?controller=user`。 2. `index.php`接收到GET变量后,加载`/user/controller.php`,并传递所有数据给Controller的`main()`方法。 3. Controller的`main()`方法检查请求,...

    php MVC小案例 留言

    【PHP MVC模式详解】 在PHP开发中,Model-View-Controller(MVC)是一种常见的设计模式,用于将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和可扩展性。在这个“PHP MVC小案例 留言”中,我们将深入...

    php简易MVC框架

    **PHP简易MVC框架详解** PHP简易MVC框架是由新浪的PHP程序员设计并实现的,旨在为初学者和开发者提供一个轻量级的学习平台,帮助他们理解和应用MVC(Model-View-Controller)设计模式。MVC模式是软件工程中的一种...

    Mvc.rar_PHP MVC_PHP MVC框架_mvc_php smarty_smarty

    【标题】"Mvc.rar" 是一个关于PHP MVC框架的压缩包,其中包含了作者基于对"Zend Framework"的研究,实现的一个轻量级MVC结构。"PHP MVC"是PHP(一种服务器端脚本语言)中用于构建Web应用的一种设计模式,它将应用...

    php自己编写mvc框架

    当我们谈到“php自己编写mvc框架”时,意味着我们要实现一个基于PHP的自定义MVC架构。 ** MVC模式详解 ** 1. **Model(模型)**:模型是应用程序的核心部分,负责管理和操作数据。在PHP MVC框架中,模型类通常与...

Global site tag (gtag.js) - Google Analytics