PHP高级程序设计 学习笔记 2014.06.18

MVC (Model-View-Controller,模型-视图-控制器)是一种可以简化应用程序开发和维护的非常常用的设计模式。它从逻辑上把应用程序分隔为个部分。模型部分负责应用程序的业务逻辑,封装访问数据库的方法并提供一个可以重用的类库。视图部分控制了数据的外观并提供从用户收集数据的机制。控制器部分,负责将所有的事项连接起来,负责从视图收集数据,并决定程序的执行逻辑。调用模型的机制并解析返回的数据,然后将数据提交给视图展示给客户。选择合适的框架要考虑五个关机因素:架构、文档、社区、支持和灵活性。

基于MVC的典型工作流

设计师根据现存的业务需求以及应用程序所要实现的功能,制作一个静态的、单独的原型设计。然后,交由开发人员评审。开发人员负责确保所有要求实现的功能均是可行的,如果开发人员没有发现任何问题,他们就会创建一个开发计划,其中包括API模型,然后再交由集成人员(负责控制器层)。如果原型出现问题,项目会回到设计人员手中,继续循环前面的流程。

准备好原型和API模型后,集成工作就会开始。集成人员将研究原型设计,并将它转换成模板语言,并将设计集成到站点URL结构中。然后编写控制器,这一组件会将请求在WEB服务器和他们需要操纵的模型信息之间代理分发。结果产生之后,获取视图并输出,并且控制器会提供所有动态内容的数据。

最后,API模型完全实现之后,就可以将应用程序交给测试人员了。如果模型开发人员严格遵守API编写代码,集成人员根据规范来编写控制器,那么测试工作将会顺利进行。

MVC 应用程序

应用程序入口,MVC站点通常会实现一个用来处理WEB站点上所以请求的核心脚本。这个文件被称为引导文件。引导文件负责初始化框架,其中包括类的自动加载,读取配置,解析URL到模型,填充封装了请求信息,初始化控制器程序等操作。

引导完成后,前端控制器将被实例化,并接管程序的运行。前端控制器类是负责解释请求变量的内置类,它把用户端请求路由到动作控制器上的某个方法,这个方法被叫做动作,动作负责实现所有的功能。这个方法中将实例化模型类,解析视图模板,并输出结果。

模型一般不遵循任何特定的结构,而是存在与一个公共的位置中,所有它们可能被框架自动加载。模型是提供了所需的数据操作和解析能力的工具类。

视图是模板,可以用任何模板语言来编写。视图的目的是不在视图中包含任何类型的处理逻辑或者数据操作,并且只输出由控制器提供的数据。模板语言(如:FastTemplate/Smarty)的选择取决于能否和目标框架集成在一起。

PHP MVC 架构的更多相关文章

  1. 【JAVA】基于MVC架构Java技术荟萃案例演练

    基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...

  2. Android 四大组件 与 MVC 架构模式

    作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...

  3. MVC架构模式分析与设计(一)---简单的mvc架构

    首先 我要感谢慕课网的老师提供视频资料 http://www.imooc.com/learn/69 下面我来进行笔记 我们制作一个简单的mvc架构 制作第一个控制器 testController.cl ...

  4. IntelliMVCCode智能MVC架构的代码助手使用方法

    智能代码生成工具,快速帮助开发者提升开发速度,通过工具自动生成MVC架构的大量源代码,节省更多的开发时间. 工具使用的框架:.net4.0,通过工具连接到数据库自动提取数据表或视图中的结构,生成对应的 ...

  5. 从MVC框架看MVC架构的设计

    尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点.本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些 ...

  6. 【PHP小项目使用MVC架构】

    小项目名称是雇员管理系统. mvc是一种项目的开发模式,中文名称为模式视图控制器,是强制程序员将数据的输入.处理.输出分开的一种开发模式. 在这个小项目中,控制器使用service作为后缀名. 项目u ...

  7. 一个初学者对于MVC架构的理解

    我很早之前就开始接触.NET开发,一直都在2.0的框架下,所以对于MVC这种架构,听说过,但没有具体使用过,近期和外部朋友接触时,有了解到他们公司在使用MVC这种架构,所以自己就找来相关资料了解一下M ...

  8. java MVC架构-spring mvc,struct2(理解)

    MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...

  9. 【深入Cocos2d-x】使用MVC架构搭建游戏Four

    喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...

  10. [Buffalo]MVC架构模式

    MVC架构模式:即Model(模型)-View(视图)-Controller(控制器). 很多人将MVC和所谓的“三层架构”进行比较,其实两者并没有什么可比性,MVC更不是分别对应着UI.业务逻辑和数 ...

随机推荐

  1. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  2. Hyper-V3:虚拟机的配置

    在Hyper-V成功新建一台虚拟机,在正式使用之前,必须配置VM使用的硬件资源,并授予用户访问VM的权限等,本文罗列出一些常见的配置,供读者参阅. 一,为虚拟机分配使用的内存 在Hyper-V Man ...

  3. redux-undo

    简介 通过包装reducer,创建一个state History,保留历史state,可以做退一步,进一步操作 1.install npm install --save redux-undo@beta ...

  4. Sublime的使用

    1.一个可扩展性强的编辑工具 2.如何安装扩展 通过View->Show Console菜单打开命令行. 按图操作: 在控制台输入,然后回车: import urllib.request,os; ...

  5. PHP之购物车的代码

    该文章记录了购物车的实现代码,仅供参考 book_sc_fns.php <?php include_once('output_fns.php'); include_once('book_fns. ...

  6. 移动应用App测试与质量管理一

    测试工程师 基于Html的WebApp测试, 现在一些移动App混Html5 HTML5性能测试 兼容性 整理后的脑图 测试招聘 弱化大量技术考察 看重看问题的高度 看重潜力 测试经验 质量管理 专项 ...

  7. IteratorPattern(迭代子模式)

    /** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLL ...

  8. Oracle创建表空间

    1.创建表空间 导出Oracle数据的指令:/orcl file=C:\jds.dmp owner=jds 导入Oracle数据的指令:imp zcl:/orcl file=C:\jds.dmp fu ...

  9. php利用root权限执行shell脚本

    vi /etc/sudoers , 为apache用户赋予root权限,并且不需要密码,还有一步重要的修改(我被困扰的就是这个地方) root  ALL=(ALL)  ALL apache  ALL= ...

  10. Java中的进程和线程

     Java中的进程与线程 一:进程与线程 概述:几乎任何的操作系统都支持运行多个任务,通常一个任务就是一个程序,而一个程序就是一个进程.当一个进程运行时,内部可能包括多个顺序执行流,每个顺序执行流就是 ...