基于PHP的二手网站毕业设计文献翻译

更新时间:2024-04-05 23:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

文献翻译

题 目

学生姓名 专业班级 学 号 院(系)

基于PHP的校园C2C二手交易网站

的设计与实现

张烽

信息与计算科学专业12-01

541210010151 数学与信息科学学院

时海亮(副教授) 2016年3月15日

(职称) 指导教师 完成时间

像MVC一样的轻量级结构在PHP中的应用

像MVC一样的轻量级结构在PHP中的应用

王关华

计算机科学与工程学院

东南大学 南京,中国 wghyy333@126.com

摘 要:这篇论文介绍了一个像mvc一样的轻量级php编程格式,这种格式结合了传统的php语法格式以及php的mvc结构,这种结构结合了两者的优点优化了php编程。这种想法是基于在传统的php编程格式中添加mvc架构得以实现的。通过使用简单的文档类来实现相应的模型、视图和控制器的功能,这种新的格式的实现是结合了类包和功能包的主题。本文提出的所有算法都进行了测试并验证了其可行性。此外,也将分析和判断这种新格式的前景。 关键字:PHP/MVC/轻量级/面向对象编程

1 介绍

面向对象编程是一种使用对象的规范性的编程方法,这种对象是一种由数据字段和方法交互在一起的数据结构,我们使用这种数据结构来设计应用程序和计算机程序,编程技术主要包括的功能,如:数据抽象、封装、模块化、多态性,和继承。现在许多现代编程语言都支持面向对象编程。

自从把面向对象模型与真实世界的目标对应起来的这种方法提议出来,面向对象在编程和软件工程方面出色的表现导致越来越多的组织应用它来执行他们的应用程序和用来改进各种各样的编程语言。然而作为最大的web脚本语言之一,自从1994年创立以来,php经历了从制作个人主页的工具转变为现在的混合C、Java、Perl并且具有自主创新的独特的语言。为了满足编程方法发展进步的目的,因此最近的php 4.0版本增加了面向对象的特性,但与其在小型web站点、轻量级的应用程序和大型站点的前端的突出表现相比,面向对象编程的特征看上去好像不是那么的如意。

MVC模型,在1979 年,由trygve Reenskaug编辑描述而来,然后应用于施乐帕洛阿尔托研究中心的Smalltalk,因此它并不是一个全新的概念,在web应用程序的

1

像MVC一样的轻量级结构在PHP中的应用

设计中,mvc通过web模板系统的执行来作为web视图的组件,在web应用程序中能经常看到mvc模式,它的视图一般就是由app生成的html和xhtml。控制器则接收post或get的输入并且决定要做什么,然后把结果交给域对象(即模型),模型包括业务规则并知道如何执行特定的任务,如处理一个新的订阅,谁来控制html生成组件,(如模板引擎、xml管道、Ajax回调等),为了让php符合面向对象编程,mvc模型带来的体系结构使之再进一步,虽然这个想法改进了php代码的重用和编程效率,但这个架构有一个明显的缺陷—降低了运营效率。面向对象的php迫切需要一种新形式来解决平衡效率和重用的问题。

2 典型的php模型和mvc

A.典型php模式的介绍

因为php是一种脚本语言的特性,它是嵌入在服务器中的html文档中实现的,这将导致典型的面向过程的php编程方式,将根据已经被设计好的传统的html格式来嵌入php程序,它在数据层混合的代码像数据库查询的语句,表示层代码像html,一个典型的php程序如下:

PHP Test

echo 'Hello World'; /* other PHP functions */ ?>

2

像MVC一样的轻量级结构在PHP中的应用

在这种模式下,所有的操作都写在一起,当然,这样就节约了页面请求的时间, 但是如果有一个很复杂的页面,程序员上百行php代码都不能写好的话,在这种情况下,程序员将无法更新或重用这种混乱的html,php代码甚至是javascript文件。

B.介绍mvc模式

由于面向对象的方法使软件具有重用性和体系结构,所以mvc模式应用了起来,mvc是一种软件结构,也是现在软件工程中被考虑的一种结构,模式分离“域逻辑”(关于用户的应用程序逻辑)从用户界面(输入和显示)允许独立开发、测试并维护每个(分离的关注点),这样就节省了时间、会创造更稳定的程序,以及避免了重复编码和促进快速程序应用程序开发(RAD),mvc是一种分离了业务逻辑和UI的结构,允许一方变化而另一方不变,在mvc 结构中,每一部分都有它自己独立的功能。

a M:模型管理着应用程序的操作和数据,并对其状态消息做出回应(通常来自视图),回应相应的命令来改变状态(通常来自控制器),在事件驱动系统中,当消息改变以便他们可以做出改变的时候模型将会通知观察员(通常为视图)。

b V:为了进行交互视图将使模型有一个合适的窗口,通常是一个用户界面元素,一个模型可以有多个不同的视图存在实现多个不同的功能,视图通常与显示表面一一对应并且知道如何呈现它。

c C:控制器接收一个输入并通过调用模型上的一个对象做出一个反应,控制器从用户那里接收一个输入并指示模型和窗口基于此输入做出一定的操作。

从本质上来说,mvc拆分了一个程序的发展过程,所以每个部分可以单独的进行修改而不会影响其他部分,mvc模式因此把m从v中分离了出来,之前m和v是混合在一起的,这种分离结构的机制如下图一所示:

3

像MVC一样的轻量级结构在PHP中的应用

图1 mvc的机制

3 传统php与mvc的比较

由于以上列出的特征,传统结构具有以下的优点: a.代码结构很简单,容易掌握和使用。 b.不同的代码可以很容易写在同一个页面上。

c.php程序、html页面和其他的内容可以被合并在一页上,减少页面请求和提高效率。

然而传统的php结构也有以下的缺点

a.过分自由的代码格式导致难以阅读和管理。

b.瀑布模型和快速发展中使用传统的php结构更加容易创建“意大利面条式代码”,使得难以维护和重用。

尽管传统的php代码有很多的优点,但它的缺点会导致一些不能被忽视的严重的问题,相反mvc模型可以很好的解决这些问题,mvc具有以下的优点:

a.后台的php代码和html页面分离是为了使代码有更加清晰的结构并且方便调试。

4

像MVC一样的轻量级结构在PHP中的应用

b.可以很好的维护模型和类的代码。

c.规整开发和重点数据的抽象是方便管理项目。

具有上面的优势以后,mvc就可以很好的从软件工程的角度来解决这些传统php结构所具有的问题,然而也并不是说mvc没有缺点,它也有以下的一些缺点:

a.在编码的早期将付出大量的时间。 b.mvc控制器引擎加载的速度很慢。

c.涉及复杂的后台执行,将在一定的程度上减少页面的运行效率。

从两者的比较可以看出从软件个工程的角度来看mvc模式比传统的php格式要优越,使用mvc时一个php应用程序可以安排使用面对对象的方法,这样可以方便软件开发者作为一个项目来进行管理,然而这种方便是以牺牲效率作为代价的,小型甚至是中等规模的应用程序强调运行时的效率,mvc模式可能不是很合适,原因是他将增加额外的开销,使应用程序更为复杂,更确切是说是,mvc将会在页面发送强求的服务器上增加一个引擎,最初,php是一种高效的解决方案,但由于mvc添加了一个引擎,或多或少的影响了它的速度,因为每次发送请求到服务器都要开启引擎也是一笔不小的开销。

4 轻量级仿mvc格式

为了把可读性、可维护性、可重构以及应用程序执行效率所有这些东西都考虑进来,我们提出一类轻量级的mvc结构,轻量级mvc也可以被定义为一个mvc结构,与传统的mvc结构一样,轻量级mvc也强调web系统的功能分开,类似于原始的mvc一样也由三部分组成,另一方面,轻量级mvc还是与原始的有很多的不同,在轻量级mvc中m、v、c是分别对应于*.phtml, *.class (or *.class.php为了安全)和*.php文件。

轻量级mvc以仿照软件工程的思想,使php代码有更多的可读性、可维护性和可重用性,此外,它更加的容易进行面向对象的设计,从而导致更加容易进行编码,而且没有必要向服务器添加引擎,执行效率比原始的mvc模式好多了,尽管如此,由于类的使用和封装,它会产生冗余代码,由于这个原因,轻量级mvc的效率在一定程度上会低于原始的php代码,幸运的是,当我们把原始的mvc模式进行改进后,这种影响只是微不足道的。

5

像MVC一样的轻量级结构在PHP中的应用

为了显示这种轻量级的类mvc结构优于普遍使用的mvc结构,在这里我们把大家正在使用的mvc结构和轻量级的mvc结构进行一个比较。

图2显示了常用的mvc结构框架,在这个框架中,控制器类调用模型类和函数来完成特定的功能,然后改控制器将得到一个返回消息,接下来它将会调用一个视图文件来作为回复,该控制器从模型中使用返回消息来填充视图,然后发送一个最终的页面到客户端,除此之外,一些模型类有他们自己也有调用一个视图页面的功能。

图2 mvc的结构

图3 类mvc轻量级结构

轻量级类mvc结构如图3所示,调用的功能已经得到简化,在这种结构中,控制器

6

像MVC一样的轻量级结构在PHP中的应用

不再是一个包装的类对象,但一个*.php文件是以传统的格式进行书写,但这个*.php文件包括*.class.php文件作为模型和*.phtml文件作为视图,因为在轻量级应用中,大多数*.php页面含有很少会在其他文件中使用的各种不同的功能,这些文件与其他文件有很少的关系,在这个轻量级类mvc结构中,每个控制器的不同的功能都具有自己的*.php文件,在这个文件中,*.class.php和*.phtml文件也加入在一起,这个类的功能的结果就是直接从*.class.php文件进入到*.phtml文件,这种方式下,在发展期间,控制器、模型和视图分别开发和维护,但在使用过程中,这种结构移除了封装的控制器类,这样可以使应用程序不必调用太多在其他控制文件中的的功能,与此同时,这种结构移除了对视图调用的功能,这个功能可以通过php的include或require函数实现,从而使轻量级应用不至于过度的包装,提高了效率。

一个典型的php文件组织是这样的:

// include Model files

require_once(“model/samplemodel.class.php”) ontroller operations erations using model classes

ire_once(“view/sampleview.phtml”) ?>

从以上我们可以看出,相比于传统的php格式,这种轻量级类mvc结构也有他的优势,在这种仿mvc结构中的功能是封装在类中,使代码具有更高的可读性和重用性,虽然三个部分包含在一起,但m、v、c三部分在不同的文件中,可以由不同的程序员进行开发,这对于一个软件工程来说是一件好事。

5 总结

由于B/S应用的发展,后台程序变得越来越复杂,传统的php格式虽然在执行速度上有优势,但是不能编写复杂的代码,为了使一个php程序从软件工程角度来看具有更好的可读性、可维护性和可重用性,mvc

结构使用面向对象的方法应用于复杂的

7

像MVC一样的轻量级结构在PHP中的应用

php项目,但是对于具有简单功能的轻量级应用,这种mvc模式太臃肿了,然而轻量级仿mvc结构能满足轻量级应用对于面向对象的需求,并且能在相同的时间内确保效率,虽然是比传统的结构慢一点,但这种结构从项目管理上来说可以节约很多的时间。

8

像MVC一样的轻量级结构在PHP中的应用

参考文献

[1] Paul .J.Braam,适用于web编程中php的设计模式[EB/OL],

http://www.yazzy.org/docs/Programming/PHP/Design_patterns_applied_to_web_programming_in_PHP.pdf。

[2] KevinMcArther,PHP:模式,框架,测试,和更多内容 [3] 亚历山德鲁·利维乌马里内斯库,在php里部署MVC模式

[EB/OL] http://systems.cs.pub.ro/wp/wpcontent/uploads/2010/05/09_AlexandruMarinescu.pdf [4] 模型-视图-控制器 [EB/OL],

http://en.wikipedia.org/wiki/Modela??Viewa??Controller [5] 面向对象编程 [EB/OL],http://en.wikipedia.org/wiki/Object-oriented_programming

9

本文来源:https://www.bwwdw.com/article/ptor.html

Top