- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MVC设计模式在Yii框架中应用与研究
MVC设计模式在Yii框架中应用与研究
摘 要
文章对小型PHP框架Yii的MVC特性进行了研究。MVC是一种设计模式,它的目标是将应用程序的输入、处理和输出流程按照模型层、视图层和控制层的方式进行分离。Yii中的MVC使Web开发过程可复用度最大化,显著提高开发者的Web应用开发速度。
【关键词】Yii PHP框架 快速开发 MVC
1 引言
利用Web应用框架进行Web开发已成主流,目前大部分的Web应用框架都建立在MVC模式之上。使用框架开发不仅将视图层、数据层、控制层分离,实现人员分工的高效性,同时在提高代码复用的基础上,加快了开发速度。Yii 框架就是目前新兴的一种用PHP语言实现的MVC(模型―视图―控制器)模式的Web框架。 MVC模式将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其它部分。随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想。
2 MVC设计模式
MVC是软件工程中的一种软件设计模式(Design pattern),是当前流行的Web应用框架的事实标准。它将业务逻辑、数据和界面显示进行分离来组织代码。MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),这三个部分既相互分离,又相互联系,是一种低耦合、高内聚的设计模式,如图1所示。
MVC的优势为:
(1)实现了显示逻辑、控制逻辑和业务逻辑的分离。
(2)模型是整个系统最复杂、最核心的部分,模型的抽取有利于多个视图共用一个模型,避免了重复开发,提高了系统的可重用性。
(3)MVC有利于系统以后的扩展和移植。
3 Yii中的MVC应用
Yii 是一个基于组件的高性能 PHP 框架,用于快速开发各种 Web 应用。Yii的MVC模式提供了一种快速开发的手段,其核心理念是程序代码的重用和各种关注点的分离。
3.1 模型的应用
Yii的模型用于表示底层数据结构以及与其相关的业务逻辑,是Yii框架的核心。模型是CModel或其子类的实例,在Web应用的各部分共享,它是单独的数据对象,可以是数据表中的一行,或一个用户输入的表单。
3.1.1 对应数据表的模型(基于CActiveRecord类)
Active Record(AR)是一种对象关系映射(Object Relational Mapping)技术。模型将表映射到类,行映射到对象,列则映射到对象的数据。每一个AR类代表一个数据表(或视图),数据表(或视图)中一行各列字段的值对应AR对象中的一个属性,AR类的实例代表了数据表的一行。AR类不单单是数据表中的字段和类中属性的映射关系,它还需要在这些数据上处理一些业务逻辑,定义了所有对数据表的读写操作。
例如创建一个基于CActiveRecord 类的模型Product:
class Product extends CActiveRecord {
public static function model($className=__CLASS__) {
return parent::model($className);
}
public function tableName() {
return product;
}
public function rules() {
return array(array(title, content, required),);
}
}
模型创建后,可以使用父类的方法完成数据表的插入、查询、更新、删除和事务等操作。
例如向数据表中插入新行:
$product=new Product;
$product-title=产品标题;
$product-content=产品描述;
$product-save();
3.1.2 对应表单的模型(基于CFormModel类)
通过HTML表单收集用户数据是Web程序开发的主要工作之一,基于CFormModel类的模型可以记录用户输入的数据,并进行验证。
下面的例子建立一个UserLogin模型类,用于在一个登录页面中收集用户的输入。由于登录信息只用于验证用户,并不需要保存,因此将UserLogin声明为表单模型。
class UserLogin extends CFormModel {
public $username;
public $password;
}
UserLogin中定义了两个属性:$username和$pass
您可能关注的文档
最近下载
- 第三单元1~6的表内除法第4课时除法(2)课件2025人教版数学二年级上册.ppt
- 第三单元1~6的表内除法第3课时除法(1)课件2025人教版数学二年级上册.pptx
- 工业厂房及管理楼水电安装施工方案.docx VIP
- 装配式农村住房建筑构造(五)(低层现浇混凝土聚苯模块墙体).pdf VIP
- 吉J2022-184现浇混凝土内置保温复合墙体建筑构造.pdf VIP
- 用于加工玻璃的双边磨边机.pdf VIP
- HIV相关知识培训课件.ppt
- 装配式农村住房建筑构造(二)(叠合钢网内置保温现浇混凝土墙体).pdf VIP
- 装配式农村住房建筑构造(三)(螺栓连接装配式夹芯保温混凝土墙体).pdf VIP
- J23J283 装配式农村住房建筑构造 (四) 混凝土自保温模块墙体 DBJT02-236-2023.pdf VIP
文档评论(0)