首页> 中国专利> 一套基于PATHINFO路由实现的MVC模型系统

一套基于PATHINFO路由实现的MVC模型系统

摘要

本发明公开了一套基于PATHINFO路由实现的MVC模型系统,包括控制器、模型和视图;所述视图用于将用户浏览器请求数据发送到控制器中,最后将控制器反馈的处理结果由视图呈现给用户浏览器;所述控制器用于接收到用户浏览器请求数据后,首先将请求数据发送到模型中,最后将模型的反馈处理结果发送到视图中,其中控制器为通过PATHINFO模式自动解析路由得到。本发明被分离为三层,因此有时改变其中的一层就能满足应用的改变,视图模块与逻辑控制模块的分离,也提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度,同时它还有利于软件工程化管理,由于不同的层各司其职,有利于通过工程化、工具化产生管理程序代码。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):G06F 8/38 专利申请号:2022104891669 申请日:20220506

    实质审查的生效

说明书

技术领域

本发明涉及Web应用技术领域,尤其涉及一套基于PATHINFO路由实现的MVC模型系统。

背景技术

在一个Web应用中,经常会包含一些业务逻辑、数据库处理逻辑以及处理用户输入的操作逻辑,之前我们的开发顺序是先要开发视图(View),然后再有我们后端处理程序处理对应的逻辑,还要操作数据库,这些一些列操作不仅使得各个页面显得十分混乱,完全没办法一目了然的梳理整个项目的逻辑,久而久之项目变得越来越臃肿,所以现有通过MVC设计模式来解决这种问题。

目前在用的MVC设计模式的系统实现原理普遍都是,需要开发者手动创建每个路由,再将URL映射到路由,在通过路由匹配到对应的控制器及具体的方法,这种技术实现有一个弊端就是每添加一项功能,都需要创建一个路由,如果当开发一个比较大的项目时,则需要创建很多路由,首先大量的路由通过URL匹配将会消耗一定的系统资源,再者大量的路由在后期的维护中也变的非常麻烦,往往要找系统的一个功能,要在大量的路由中寻找对应的控制器,故为了可以自动匹配路由并优化其MVC设计模式,亟需一套基于PATHINFO路由实现的MVC模型系统。

发明内容

本发明提供了一套基于PATHINFO路由实现的MVC模型系统,以解决上述背景技术中提出的问题。

为了实现上述目的,本发明采用了如下技术方案:

一套基于PATHINFO路由实现的MVC模型系统,包括控制器、模型和视图;

所述视图用于将用户浏览器请求数据发送到控制器中,最后将控制器反馈的处理结果由视图呈现给用户浏览器;

所述控制器用于接收到用户浏览器请求数据后,首先将请求数据发送到模型中,最后将模型的反馈处理结果发送到视图中,其中控制器为通过PATHINFO模式自动解析路由得到;

所述模型用于业务流程数据或状态数据的处理以及业务规则的制定,可将控制器发送来的用户浏览器请求数据进行处理,并将最终的处理结果反馈到控制器中。

作为本技术方案的进一步改进方案:通过PATHINFO模式自动解析路由的原理如下:

第一步,通过$_SERVER[‘PATH_INFO’]全局变量获取到pathinfo的参数;

第二步,通过算法获得控制器。

作为本技术方案的进一步改进方案:所述pathinfo模式的url为:http://域名/模块/控制器/方法/参数1/参数1的值/参数2/参数2的值。

作为本技术方案的进一步改进方案:可使用spl_autoload_register()方式自动加载对应控制器。

作为本技术方案的进一步改进方案:所述视图为用户交互界面,在Web应用中,视图包括HTML界面、XHTML界面、XML界面或Applet界面。

作为本技术方案的进一步改进方案:所述控制器、模型和视图均可独立进行开发。

本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的基于PATHINFO路由实现的MVC模型系统。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任一项所述的基于PATHINFO路由实现的MVC模型系统。

与现有技术相比,本发明的有益效果是:

使用该方案开发的应用,被分离为三层,因此有时改变其中的一层就能满足应用的改变,视图模块与逻辑控制模块的分离,也提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度,同时它还有利于软件工程化管理,由于不同的层各司其职,有利于通过工程化、工具化产生管理程序代码。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明提出的一套基于PATHINFO路由实现的MVC模型系统的结构示意图;

图2为本发明提供的一种终端设备的一个优选实施例的结构示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

请参阅图1~2,本发明实施例中,一套基于PATHINFO路由实现的MVC模型系统,包括控制器、模型和视图;

视图用于将用户浏览器请求数据发送到控制器中,最后将控制器反馈的处理结果由视图呈现给用户浏览器;

控制器用于接收到用户浏览器请求数据后,首先将请求数据发送到模型中,最后将模型的反馈处理结果发送到视图中,其中控制器为通过PATHINFO模式自动解析路由得到;

模型用于业务流程数据或状态数据的处理以及业务规则的制定,可将控制器发送来的用户浏览器请求数据进行处理,并将最终的处理结果反馈到控制器中。

具体的,通过PATHINFO模式自动解析路由的原理如下:

第一步,通过$_SERVER[‘PATH_INFO’]全局变量获取到pathinfo的参数;

第二步,通过算法获得控制器。

具体的,pathinfo模式的url为:http://域名/模块/控制器/方法/参数1/参数1的值/参数2/参数2的值。

具体的,可使用spl_autoload_register()方式自动加载对应控制器。

具体的,视图为用户交互界面,在Web应用中,视图包括HTML界面、XHTML界面、XML界面或Applet界面。

具体的,控制器、模型和视图均可独立进行开发。

请参阅图2,图2是本发明提供的一种终端设备的一个优选实施例的结构示意图。终端设备包括处理器、存储器以及存储在存储器中且被配置为由处理器执行的计算机程序,处理器执行计算机程序时实现上述任一实施例的基于PATHINFO路由实现的MVC模型系统。

优选地,计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、……),一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。

处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者处理器也可以是任何常规的处理器,处理器是终端设备的控制中心,利用各种接口和线路连接终端设备的各个部分。

存储器主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,存储器可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(Smart MediaCard,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(FlashCard)等,或存储器也可以是其他易失性固态存储器件。

需要说明的是,上述终端设备可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图2的结构示意图仅仅是上述终端设备的示例,并不构成对上述终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任一实施例的基于PATHINFO路由实现的MVC模型系统。

本发明的工作原理是:

我们在web网站中,默认的URL模式有很多种,常见的url格式如下:

http://example.com/index.php?m=module&c=controller&a=action&key1=value1&key2=value2;但是我们的web服务器还支持了pathinfo模式,pathinfo模式url格式如下:

http://example.com/module/controller/action/key1/value1/key2/value2.html;

我们规定pathinfo模式的url为:

http://域名/模块/控制器/方法/参数1/参数1的值/参数2/参数2的值这种pathinfo模式的url有以下几种好处:

1.它提供了最好的SEO支持;2.可以实现URL的伪静态;3.它看起来更简洁、更美观。而常见的web环境大部分都默认支持pathinfo模式,所以本发明通过pathinfo模式来实现。

自动路由解析,原理如下(以PHP为例):

1.通过$_SERVER[‘PATH_INFO’]全局变量获取到pathinfo的参数

2.通过算法获取模块(module)/控制器(controller)/方法(action)

$pathinfo=explode('/',trim($_SERVER['PATH_INFO'],'/'));

$_ROUTE_M=isset($pathinfo[0])?$pathinfo[0]:”;

$_ROUTE_C=isset($pathinfo[1])?$pathinfo[1]:”;

$_ROUTE_A=isset($pathinfo[2])?$pathinfo[2]:”;

故本发明MVC实现原理如下(以PHP为例):

通过pathinfo得到控制器后,视图将用户浏览器请求数据发送到控制器中,控制器自动解析路由,并发送到模型中,模型将发送来的用户浏览器请求数据进行处理,并将最终的处理结果反馈到控制器中,最后将控制器反馈的处理结果由视图呈现给用户浏览器。

以上所述,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上所述而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号