首页 理论教育PHPMVC开发实战

PHPMVC开发实战

【摘要】:PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。

MVC是一种设计模式,在软件设计工程中非常实用,最早由smalltalk语言研究中心提出,Java的壮大极大地丰富了MVC设计思想。目前,基于Java的MVC项目有Struts、Spring、Grails等,Java程序员可以利用这些框架,极大地提高开发效率

PHP经历了面向过程、面向函数到PHP 5.0的面向对象。多种设计模式的演变,使得PHP变得非常易用和强大,但是也让PHP始终没有进入现代化设计语言的阵营。PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。首先看一段代码。

978-7-111-42852-7-Part01-1.jpg

978-7-111-42852-7-Part01-2.jpg

图1-1 PHP大事记

上述代码是传统PHP编程技术中典型的代码编写方式。PHP允许开发人员直接在HTML网页中嵌入逻辑运算代码,这种类似于JavaScript的脚本编写方式,曾经大受网页开发人员欢迎。但是也正因如此,PHP 5.x之前的版本并不能胜任大型Web项目的构建,因为过多地在页面中嵌入运算代码,无疑对项目后期维护产生极大的困扰。同时,由于逻辑与视图混在一起,将造成团队协同的困难。所以早期的PHP通常只适用于小型或个人网站。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。

978-7-111-42852-7-Part01-3.jpg(www.chuimin.cn)

如上述代码所示,传统意义上,Index是一个PHP类的方法。但是在MVC设计模式中,Index称为动作。对于普通用户而言就是一个网页。但是,这里的网页并不像前面所讲的网页需要混杂着HTML代码,这就是MVC设计模式中最典型的前后台分离编程特点。

当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。尽管每个框架在实现MVC方式上有所不同,但无论怎样变化,都拥有Model(模型)、View(视图)及Controller(控制器)概念。这三者之间的关系如图1-2所示。

978-7-111-42852-7-Part01-4.jpg

图1-2 MVC运行图

如图1-2所示,控制器、视图、模型这3个部分都是相互分离又互相依存的,它们具备较高的耦合性,控制器是MVC中的指挥员,模型器担当了MVC的动力源,模型器可以连接到传统的PHP类库,开发人员也可以使用现有的函数库等进行扩展。

综合而言,MVC编程的灵魂就是灵活。MVC设计不像传统的“类工厂”模式只在有限的类库中进行功能扩展;MVC能够根据用户的请求,由控制器指挥模型器进行相应的算法,得出的结果由视图解释器进行呈现。