Php 相对于Zend框架,什么是MVC?

Php 相对于Zend框架,什么是MVC?,php,model-view-controller,design-patterns,zend-framework,Php,Model View Controller,Design Patterns,Zend Framework,我正在学习,它使用MVC模型 我还没有弄清楚MVC模型、视图和控制器是什么 三个不同的领域是什么?项目流程是什么样的 Zend框架有自己非常好的功能,特别是引入了MVC 引述: 那么MVC模式到底是什么呢 每个人都在谈论,为什么 你在乎吗?MVC不仅仅是 只是一个三个字母的首字母缩略词(TLA) 你想什么时候抽就抽 听起来很聪明;这已经成为一件大事 现代建筑设计中的一个标准 网络应用程序。有充分的理由。 大多数web应用程序代码属于 以下三类之一: 表示、业务逻辑和数据 通道MVC模式对此进行了

我正在学习,它使用MVC模型

我还没有弄清楚MVC模型、视图和控制器是什么


三个不同的领域是什么?项目流程是什么样的

Zend框架有自己非常好的功能,特别是引入了MVC

引述:

那么MVC模式到底是什么呢 每个人都在谈论,为什么 你在乎吗?MVC不仅仅是 只是一个三个字母的首字母缩略词(TLA) 你想什么时候抽就抽 听起来很聪明;这已经成为一件大事 现代建筑设计中的一个标准 网络应用程序。有充分的理由。 大多数web应用程序代码属于 以下三类之一: 表示、业务逻辑和数据 通道MVC模式对此进行了建模 关注点的分离很好。结局 结果是您的演示代码 可以合并到 您的应用程序与您的业务 另一种逻辑和您的数据访问 在另一个代码。许多开发者 我们发现这个定义很明确 分离是保持生命的必要条件 他们的代码是有组织的,尤其是当 不止一个开发人员正在进行开发 同样的应用程序


关于Stackoverflow还有几个问题可以解释MVC的概念:

有关该概念的详细说明,请参见:

模型视图控制器(MVC)是一种 软件中使用的体系结构模式 工程学。成功使用 模式将业务逻辑与 用户界面注意事项, 产生一个应用程序,其中 更容易修改视觉效果或 应用程序或应用程序的外观 基本业务规则没有 影响对方。在MVC中,模型 表示信息(数据) 申请的详情;景色 对应于用户的元素 界面,如文本、复选框 项目等;和 控制器管理通信 数据和用于 操作与数据库之间的数据 模型

关于Zend框架:

  • 模型通常通过类的扩展来表示
  • 视图显示为定义的脚本文件夹中的
    *.phtml
    文件,这些文件由类处理
  • 控制器由类的扩展定义

    • 用尽可能少的话:

      • 模型是数据库
      • 视图是您看到的(页面)
      • 控制器是胶水(逻辑)

      您的模型知道如何访问包含数据的表;您的视图知道如何显示内容;你的控制器把它粘在一起(我应该显示什么视图?我应该使用什么模型?)

      M-模型-通常是最大的混淆源。这些是应用程序中完成所有“繁重任务”的部分,它们处理数据库访问,执行复杂的应用程序特定逻辑,并负责应用程序的大部分“功能”。与视图和控制器不同,Zend框架没有模型的基类——这是因为它们的工作没有真正的一致性。一些框架(比如RubyonRails)试图提供某种数据库包装器作为模型的基础,但在很多情况下(第三方提要/API、静态文件、非持久性计算、跨多个表的概念……),这充其量只是一种误导性的做法。模型是应用程序的一部分,您仍然被迫进行编程,而框架并不能真正将您从中解救出来

      V视图是这里最简单的组件。它们应该是简单的PHP/HTML模板。它们被赋予视图对象、数组、字符串等,然后将其放入页面中。这里不应该有太多(如果有的话)复杂的逻辑-在这些上面循环,显示这个(如果定义的话),斑马条纹这个表格等等。视图帮助程序(比如神奇地呈现
      Zend_表单的帮助程序)有一些神奇之处,但这对于理解整个系统来说并不是必不可少的

      C-控制器-从最广泛的意义上讲,控制器负责接收用户请求,将它们发送到模型对象,并准备模型以提交给视图。是胶水把所有东西粘在一起。如果您使用的是Zend MVC,那么您需要关注两个控制器-
      Zend\u控制器\u前端
      Zend\u控制器\u动作

      Zend\u Controller\u Front
      (如果您使用
      Zend\u Layout::startMVC()
      ,您可以免费获得)是应用程序的单一入口点-它处理原始用户请求并将URL转换为要调用的操作。有很多地方可以“插入”到这个插件来处理身份验证和访问限制之类的事情,但是,在核心部分,它只是前门的“交通警察”来指挥传入的请求

      Zend\u Controller\u Action
      是操作的基类-本质上,操作代表应用程序所做的事情(登录、列出博客条目、启动洲际弹道导弹、订购比萨饼……),但并不直接负责实际操作。动作控制器非常无聊——它们从表单和URL中提取值,调用模型类上的一些方法来实际执行动作,并将结果推送到视图中。如前所述,它们是将模型和视图结合在一起的“粘合剂”


      一个粗略的测试,看看你是否沿着正确的路线分裂东西是设想一个重大的变化,你的网站。视觉上的重新设计几乎完全在视图中进行。移动所有URL将更改控制器。从web应用程序转换为GUI应用程序将替换视图和控制器,但您的模型仍然基本不变。如果您重新编写模型,您将拥有一个全新的应用程序。

      几乎正确。除非您正在处理一个微不足道的应用程序,否则Z