大家知道理解模型?谈下视图-控制器的见解
2014-03-21 14:00
330 查看
CakePHP遵循MVC软件设计模式。编程使用MVC应用程序分为三个主要部分:
模型层
您的应用程序的模型层代表了部分实现的业务逻辑。它负责检索数据并将其转换为为您的应用程序有意义的概念。这包括处理、验证关联或相关任务处理数据。
乍一看,模型对象可以看为第一层与任何数据库交互的你可能会为您的应用程序使用。但通常他们代表了应用程序实现的主要概念。
在一个社交网络的情况下,模型层会照顾任务,比如保存用户数据,保存朋友协会、存储和检索用户的照片,找到新的朋友建议,等。而模型对象可以被认为是“朋友”,“用户”、“评论”,或“照片”。
视图层
视图呈现建模数据的展示。被分开的模型对象,它负责使用可用的信息来产生任何表象的接口应用程序可能需要。
例如,模型层返回的一组数据,视图将使用它来呈现一个包含它的HTML页面。或他人使用XML格式的结果。
视图层不仅局限于HTML或文本表示的数据,它可以用来提供各种各样的格式根据您的需要,如视频、音乐、文档和其他任何你能想到的格式。
控制器层
控制器层处理来自用户的请求。它负责渲染返回响应的模型和视图层。
控制器可以被视为经理照顾所有需要的资源完成任务委派给正确的工人。它等待来自客户机的请求,检查其有效性根据身份验证或授权规则,代表数据获取或处理模型,并选择正确的类型的表示数据,客户接受,最终代表这个渲染过程视图层。
CakePHP请求周期
图1:典型的MVCCakePHP的请求
典型的CakePHP请求周期开始与一个用户请求一个页面或资源在您的应用程序。这个请求首先是由调度程序处理,选择正确的控制器对象来处理它。
一旦请求到达控制器,它将与模型层通信处理任何可能需要的数据抓取或保存操作。这种沟通结束后,控制器将继续委派到正确的视图对象生成一个输出造成的任务提供的数据模型。
最后,当这个输出是生成的,立即呈现给用户
几乎每一个请求到您的应用程序将遵循这一基本模式。我们以后还会添加一些细节具体到CakePHP,所以记住这一点。
好处
为什么使用MVC?因为它是一种尝试和真正的软件设计模式,应用程序转化为一个可维护的,模块化的,快速开发方案。制作应用程序任务到单独的模型、视图和控制器使您的应用程序在其脚很轻。轻松添加新功能,新面孔在旧特性是提前的。模块化和独立的设计同时还允许开发人员和设计人员的工作,包括快速原型的能力。分离还允许开发人员在一个应用程序的一部分进行更改而不影响他人。
如果你从未建造这样一个应用程序,它需要一些时间适应,但我们相信,一旦你建立您的第一个应用程序使用CakePHP,你不想去做任何其他方式。
模型层
您的应用程序的模型层代表了部分实现的业务逻辑。它负责检索数据并将其转换为为您的应用程序有意义的概念。这包括处理、验证关联或相关任务处理数据。
乍一看,模型对象可以看为第一层与任何数据库交互的你可能会为您的应用程序使用。但通常他们代表了应用程序实现的主要概念。
在一个社交网络的情况下,模型层会照顾任务,比如保存用户数据,保存朋友协会、存储和检索用户的照片,找到新的朋友建议,等。而模型对象可以被认为是“朋友”,“用户”、“评论”,或“照片”。
视图层
视图呈现建模数据的展示。被分开的模型对象,它负责使用可用的信息来产生任何表象的接口应用程序可能需要。
例如,模型层返回的一组数据,视图将使用它来呈现一个包含它的HTML页面。或他人使用XML格式的结果。
视图层不仅局限于HTML或文本表示的数据,它可以用来提供各种各样的格式根据您的需要,如视频、音乐、文档和其他任何你能想到的格式。
控制器层
控制器层处理来自用户的请求。它负责渲染返回响应的模型和视图层。
控制器可以被视为经理照顾所有需要的资源完成任务委派给正确的工人。它等待来自客户机的请求,检查其有效性根据身份验证或授权规则,代表数据获取或处理模型,并选择正确的类型的表示数据,客户接受,最终代表这个渲染过程视图层。
CakePHP请求周期
图1:典型的MVCCakePHP的请求
典型的CakePHP请求周期开始与一个用户请求一个页面或资源在您的应用程序。这个请求首先是由调度程序处理,选择正确的控制器对象来处理它。
一旦请求到达控制器,它将与模型层通信处理任何可能需要的数据抓取或保存操作。这种沟通结束后,控制器将继续委派到正确的视图对象生成一个输出造成的任务提供的数据模型。
最后,当这个输出是生成的,立即呈现给用户
几乎每一个请求到您的应用程序将遵循这一基本模式。我们以后还会添加一些细节具体到CakePHP,所以记住这一点。
好处
为什么使用MVC?因为它是一种尝试和真正的软件设计模式,应用程序转化为一个可维护的,模块化的,快速开发方案。制作应用程序任务到单独的模型、视图和控制器使您的应用程序在其脚很轻。轻松添加新功能,新面孔在旧特性是提前的。模块化和独立的设计同时还允许开发人员和设计人员的工作,包括快速原型的能力。分离还允许开发人员在一个应用程序的一部分进行更改而不影响他人。
如果你从未建造这样一个应用程序,它需要一些时间适应,但我们相信,一旦你建立您的第一个应用程序使用CakePHP,你不想去做任何其他方式。
相关文章推荐
- Asp.Net MVC(理解模型、视图和控制器)
- ASP.NET MVC教程:理解模型、视图和控制器(2)
- ASP.NET MVC:理解模型、视图和控制器
- ASP.NET MVC教程:理解模型、视图和控制器(3)
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- Model View Controller 模型视图控制器的理解
- ASP.NET MVC教程:理解模型、视图和控制器(4)
- 理解模型,视图和控制器(C#)
- ASP.NET MVC教程:理解模型、视图和控制器(5)(完)
- Asp.net MVC 理解模型,视图和控制器
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- 理解模型,视图和控制器(C#)
- 理解模型,视图和控制器(C#)
- 深入理解模型,视图和控制器(C#)
- Asp.Net MVC(理解模型、视图和控制器) - Part.2
- 理解模型、视图、控制器
- ASP.NET MVC教程:理解模型、视图和控制器(1)
- [翻译:ASP.NET MVC 教程]理解模型、视图和控制器
- 理解OpenGL中的模型视图矩阵变换