PHP MVC 架构
PHP高级程序设计 学习笔记 2014.06.18
MVC (Model-View-Controller,模型-视图-控制器)是一种可以简化应用程序开发和维护的非常常用的设计模式。它从逻辑上把应用程序分隔为个部分。模型部分负责应用程序的业务逻辑,封装访问数据库的方法并提供一个可以重用的类库。视图部分控制了数据的外观并提供从用户收集数据的机制。控制器部分,负责将所有的事项连接起来,负责从视图收集数据,并决定程序的执行逻辑。调用模型的机制并解析返回的数据,然后将数据提交给视图展示给客户。选择合适的框架要考虑五个关机因素:架构、文档、社区、支持和灵活性。
基于MVC的典型工作流
设计师根据现存的业务需求以及应用程序所要实现的功能,制作一个静态的、单独的原型设计。然后,交由开发人员评审。开发人员负责确保所有要求实现的功能均是可行的,如果开发人员没有发现任何问题,他们就会创建一个开发计划,其中包括API模型,然后再交由集成人员(负责控制器层)。如果原型出现问题,项目会回到设计人员手中,继续循环前面的流程。
准备好原型和API模型后,集成工作就会开始。集成人员将研究原型设计,并将它转换成模板语言,并将设计集成到站点URL结构中。然后编写控制器,这一组件会将请求在WEB服务器和他们需要操纵的模型信息之间代理分发。结果产生之后,获取视图并输出,并且控制器会提供所有动态内容的数据。
最后,API模型完全实现之后,就可以将应用程序交给测试人员了。如果模型开发人员严格遵守API编写代码,集成人员根据规范来编写控制器,那么测试工作将会顺利进行。
MVC 应用程序
应用程序入口,MVC站点通常会实现一个用来处理WEB站点上所以请求的核心脚本。这个文件被称为引导文件。引导文件负责初始化框架,其中包括类的自动加载,读取配置,解析URL到模型,填充封装了请求信息,初始化控制器程序等操作。
引导完成后,前端控制器将被实例化,并接管程序的运行。前端控制器类是负责解释请求变量的内置类,它把用户端请求路由到动作控制器上的某个方法,这个方法被叫做动作,动作负责实现所有的功能。这个方法中将实例化模型类,解析视图模板,并输出结果。
模型一般不遵循任何特定的结构,而是存在与一个公共的位置中,所有它们可能被框架自动加载。模型是提供了所需的数据操作和解析能力的工具类。
视图是模板,可以用任何模板语言来编写。视图的目的是不在视图中包含任何类型的处理逻辑或者数据操作,并且只输出由控制器提供的数据。模板语言(如:FastTemplate/Smarty)的选择取决于能否和目标框架集成在一起。
PHP MVC 架构的更多相关文章
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...
- Android 四大组件 与 MVC 架构模式
作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...
- MVC架构模式分析与设计(一)---简单的mvc架构
首先 我要感谢慕课网的老师提供视频资料 http://www.imooc.com/learn/69 下面我来进行笔记 我们制作一个简单的mvc架构 制作第一个控制器 testController.cl ...
- IntelliMVCCode智能MVC架构的代码助手使用方法
智能代码生成工具,快速帮助开发者提升开发速度,通过工具自动生成MVC架构的大量源代码,节省更多的开发时间. 工具使用的框架:.net4.0,通过工具连接到数据库自动提取数据表或视图中的结构,生成对应的 ...
- 从MVC框架看MVC架构的设计
尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点.本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些 ...
- 【PHP小项目使用MVC架构】
小项目名称是雇员管理系统. mvc是一种项目的开发模式,中文名称为模式视图控制器,是强制程序员将数据的输入.处理.输出分开的一种开发模式. 在这个小项目中,控制器使用service作为后缀名. 项目u ...
- 一个初学者对于MVC架构的理解
我很早之前就开始接触.NET开发,一直都在2.0的框架下,所以对于MVC这种架构,听说过,但没有具体使用过,近期和外部朋友接触时,有了解到他们公司在使用MVC这种架构,所以自己就找来相关资料了解一下M ...
- java MVC架构-spring mvc,struct2(理解)
MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...
- 【深入Cocos2d-x】使用MVC架构搭建游戏Four
喜欢Four这个项目,就赶快在GitHub上Star这个项目吧! 喜欢我的文章,来微博关注我吧:王选易在学C艹 点我下载 项目起源 项目Logo: 下面是该游戏的项目地址,各位想参考源代码的同学可以到 ...
- [Buffalo]MVC架构模式
MVC架构模式:即Model(模型)-View(视图)-Controller(控制器). 很多人将MVC和所谓的“三层架构”进行比较,其实两者并没有什么可比性,MVC更不是分别对应着UI.业务逻辑和数 ...
随机推荐
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Winserver下的Hyper-v “未在远程桌面会话中捕获到鼠标”
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理
系列目录 思维导图 下面我们来看一个思维导图,这样就可以更快了解所需要的功能: 上一节我们利用了一个简单的代码例子,完成了与微信公众号的对话(给公众号发一条信息,并得到回复) 这一节将讲解公众号如何设 ...
- SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)
前言 上一节我们简单讲述了表表达式的4种类型,这一系列我们来讲讲使用视图的限制,简短的内容,深入的理解,Always to review the basics. 避免在视图中使用ORDER BY 上一 ...
- [C#] C# 知识回顾 - 学会使用异常
学会使用异常 在 C# 中,程序中在运行时出现的错误,会不断在程序中进行传播,这种机制称为“异常”. 异常通常由错误的代码引发,并由能够更正错误的代码进行 catch. 异常可由 .NET 的 CLR ...
- AFNetworking 3.0 源码解读 总结(干货)(下)
承接上一篇AFNetworking 3.0 源码解读 总结(干货)(上) 21.网络服务类型NSURLRequestNetworkServiceType 示例代码: typedef NS_ENUM(N ...
- 通过VMware的PowerCLI配置集群内指定主机的vMotion功能
PowerCLI是VMware开发的基于微软(MSFT)的PowerShell的命令行管理vSphere的实现,因此在批量化操作方面CLI会减轻很多GUI环境下的繁琐重复劳作. 现有场景中有大量的物理 ...
- jQuery中取消后续执行内容
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title&g ...
- SQL字符串函数
LEN() :计算字符串长度(字符的个数.)datalength();//计算字符串所占用的字节数,不属于字符串函数.测试varchar变量与nvarchar变量存储字符串a的区别.见备注1.LOWE ...
- 鱼眼模式(Fisheye projection)的软件实现
简单实现 鱼眼模式(Fisheye)和普通的透视投影(Perspective projection),一个很大的区别就是鱼眼的投影算法是非线性的(non-linear),实际照相机的情况是在镜头外面包 ...