一种基于PHP实现MVC模式的方法
2020-11-02高丽
高丽
摘要:为了提高软件开发中代码的质量、效率,框架结构在Web应用开发中已经被广泛地应用。MVC模式将业务逻辑、数据、显示进行分离,极大提高Web应用程序的可用性和可维护性。该文通过PHP语言实现MVC模式。
关键词:PHP;MVC模式;实现方法
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2020)26-0203-02
开发互联网中,采用基于B/S模式实现Web应用程序,用户界面通过浏览器实现,系统功能集中到服务器上。PHP具有跨平台性的多用途脚本语言,因为编辑简单、实用性强、业务框架多等特点成为当前的适合Web开发的热门语言。在PHP中使用MVC越来越流行了,尤其一些开源的框架中,有利于Web应用程序的管理和维护,提高开发效率。
1 MVC模式
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特地发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC工作原理如图1所示。
其中Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分,依据模型数据而创建。Controller(控制器)是应用程序中处理用户交互的部分,主要负责从视图读取数据,控制用户输入,并向模型发送数据。MVC模式使得代码分层、分类,开发和设计的工作相对独立。
2 MVC框架的分析与实现
2.1 MVC在PHP中的功能
Model(模型),主要实现程序的应用功能和逻辑,在PHP中主要负责数据的生成和管理;view(视图),负责输出,处理是怎样调用模板以及资源文件;controller(控制器),负责转发请求并处理,决定调用的视图和使用的数据。
2.2 MVC在PHP中的实现
为了解决一类共同问题总结出来的一套可复用的解决方案,这是软件设计模式产生的初衷。不管是客户端还是移动端,MVC的分层设计模式解决了软件开发中的可复用、单一职责、解耦的问题,PHP语言中的MVC设置模式也是如此。在MVC基本原理模型中展示了模型、视图与控制器的关系与作用,但是在实际开发设计时,还需要设计其基于PHP的实际模型,继而真实的在Web程序开发时应用MVC模式,基于PHP的MVC工作原理如图2所示。
2.2.1 URL访问方式:单一入口
模式采用单一入口,约定请求页面时的URL,利用它来确定文件在系统中的具体位置,从根本上稳定系统和提高安全性。单一的入口使得系统更便捷的验证系统身份,不用单独分开验证每一个文件,提高了验证的效率。同时,只需要在入口文件中修改相应的规定来重写URL。在实现中,设定唯一的访问文件为index.php,如果想要访问并且得到正确结果,只能通过这入口文件,其中通过改变参数来控制访问的页面、决定显示的结果或者调用不同的控制器。URL设置及MVC模式目录如下图3-图4所示。
2.2.2 控制器(Controller)
控制器是连通整个模式的关键,所以它的设计至关重要。因为框架模式采用单一入口,用户的所有信息请求都要从相同的入口进入,但实际的数据请求由控制器来筛选,并在模型处理完相应数据后,调用视图将回复数据显示界面,反馈于用户。实际开发时,需要调取配置文件、加载函数库及框架模式中心控制等来完成设置控制器。在这里控制器文件命名为controller.PHP,其关键代码实现过程如下。
2.2.3 视图(View)
视图,即用户界面。对于程序员来说,视图按照模型中的设计信息转换成界面显示给用户,在此需要在应用程序界面加入一些PHP逻辑处理。在视图文件view.php中定义了View类,在该类中定义display($output)方法,并在该方法中打印$output的值,用于显示数据。主要代码如下:
视图在设计时,可以根据不同的请求来调用不同的视图类,以不同的形式显示数据信息,但这些请求不是由视图来处理,它只是显示数据信息。同样,也存在多个视图同时在访问模型,只要信息在该模型中,则会显示具体内容信息,产生视图。这样增加了视图的作用,可以只针对试图进行页面的设计。
2.2.4 模型(Model)
模型的功能主要是处理不同信息的请求,配合控制器完成工作。利用面向对象进行编码,模型在一个PHP 应用程序中,通常是一个类(或多个)。一般这个类是处理或保存数据表。在模型文件model.php中定义了Model类,在该类中定义getData()方法,用于请求数据的返回。主要代码如下:
2.2.5 运行时(Runtime)
在入口文件中定义参数,使得控制器根据不同的参数获取不同的数据。控制器中包含需要的视图和模型文件,根据模型中定义的对象调用数据,再通过视图对象输出调用的数据。
3 结束语
本文利用PHP以一简单案例阐述了MVC设计模式的实现方法。MVC是一种优秀的设计模式,代码更易于理解。如要改变一些信息在显示界面,只需要修改View层程序,如数据库结构发生变化,只需要更改Model 层程序。让基于面向对象的Web开发变得更有效率。
参考文献:
[1] 张睿涵.基于经典MVC架构的实现Web应用系统设计与实现[J].数码世界,2017(4):17-18.
[2] 張伟伟.PHP中MVC模式下类的动态加载实现[J].电脑知识与技术,2019,15(34):60-61.
[3] 杨婷婷.PHP开发中MVC模式的应用研究[J].淮南职业技术学院学报,2019,19(2):84-85.
[4] 闫晓亮,焦素云.MVC模式PHP开发框架[J].长春工业大学学报,2016,37(6):592-596.
【通联编辑:代影】