CN109446454A - 一种轻量级高性能的PHPWeb***框架及工作方法 - Google Patents
一种轻量级高性能的PHPWeb***框架及工作方法 Download PDFInfo
- Publication number
- CN109446454A CN109446454A CN201811018895.6A CN201811018895A CN109446454A CN 109446454 A CN109446454 A CN 109446454A CN 201811018895 A CN201811018895 A CN 201811018895A CN 109446454 A CN109446454 A CN 109446454A
- Authority
- CN
- China
- Prior art keywords
- class
- configuration file
- file
- frame
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及web框架技术领域,具体涉及一种轻量级高性能的PHPWeb***框架,包括应用程序生成类、路由类、框架基类、构建项目核心配置文件、MVC模块,MVC模块包括模型、视图、控制器,还公开了一种框架的工作方法,包括加载公共入口文件、创建WEB实例对象,初始化WEB应用并执行应用、项目预编译并载入、检查并加载插件、URL分析和调度、获取当前执行的控制器和动作、加载控制器配置文件、语言检查并读取对应的语言文件、模型检查并定义相关的模型变量、生成视图文件。本发明加入了MVC模块,实现PHP技术的多层分离的架构模式,使用“内核+扩展”的架构模式进行PHP Web项目的开发,弥补了PHP开发技术在这一模式上的空白。
Description
技术领域
本发明涉及web框架技术领域,具体涉及一种轻量级高性能的PHPWeb***框架及工作方法。
背景技术
在Web软件开发领域,毫无疑问,Web框架技术已经得到了突飞猛进的发展和普及,在过去一些年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于RubyonRails,以及在其他编程语言中流露出的MVC框架思想。
内核+扩展功能”的架构为无数的Linux发行版奠定了基础,并且让Linux 可以顺畅运行在各种硬件环境中,这在传统架构软件中是不可想象的。因此即便是Windows 7也顺应发展趋势,采用了类似的架构。
在Web应用开发框架中,Java世界早就普及了多层分离的架构模式。以快速开发引领Web世界革命的Ruby on Rails框架也在第三版和Merb进行合并,合并后也是“内核+扩展”的架构模式。
发明内容
本发明的目的在于克服现有技术中存在的问题,提供一种轻量级高性能的PHPWeb***框架及工作方法,它可以实现提供一种PHP技术的多层分离的架构模式,使用“内核+扩展”的架构模式进行PHP Web项目的开发,从而弥补PHP 开发技术在这一模式上的空白,还提供本框架的工作方法,通过此方法能够方便、快捷地开发和部署WEB应用。
为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现的:
一种轻量级高性能的PHPWeb***框架,包括:
应用程序生成类,所述应用程序生成类用于完成加载框架启动文件、实例化网站应用实例、应用程序初始化及后续工作;
路由类,所述路由类用于完成路由改写、启动路由解析;
框架基类,所述框架基类位于框架***核心目录class中,其包括框架运行所需要的核心类库及用于网站和项目开发的常用工具类,且所述框架基类能够进行扩展;
构建项目核心配置文件,所述构建项目核心配置文件包括框架核心配置文件和应用程序实例配置文件;
还包括:MVC模块,所述MVC模块包括:
模型,所述模型用于封装与业务逻辑有关的代码和数据;
视图,所述视图将程序运行的结果返回给浏览器显示;
控制器,所述控制器用于接收用户输入,然后调用模型对输入数据进行处理并获得处理结果,最后将结果传递到视图,所述路由类通过路由解析后能够调取控制器。
进一步地,所述常用工具类包括核心类库包、数据库类库包、***工具类库包、异常处理类库包。
进一步地,所述框架核心配置文件包括框架初始化inc配置文件和框架语言包lang配置文件。
进一步地,所述应用程序实例配置文件是在应用程序实例化之后生成的***运行时环境和参数、常量的配置文件,包括inc配置文件、lang配置文件、 common配置文件和local本地开发配置文件。
一种PHPWeb***框架的工作方法,其包括如下步骤:
步骤1、加载公共入口文件;
步骤2、创建WEB实例对象,初始化WEB应用并执行应用;
步骤3、项目预编译并载入;
步骤4、检查并加载插件;
步骤5、URL分析和调度;
步骤6、获取当前执行的控制器和动作;
步骤7、加载控制器配置文件;
步骤8、语言检查并读取对应的语言文件;
步骤9、模型检查并定义相关的模型变量;
步骤10、生成视图文件。
本发明的有益效果:1、本框架中加入了MVC模块,实现PHP技术的多层分离的架构模式,使用“内核+扩展”的架构模式进行PHP Web项目的开发,弥补了PHP开发技术在这一模式上的空白;MVC模块的作用就是分离逻辑和表现,使得本框架清晰的将应用程序分隔为独立的部分、业务逻辑代码能够很方便的在多处重复使用、方便开发人员分工协作、可以方便开发人员对应用程序各个部分的代码进行测试。
2、本框架工作方法中,由于采用公共入口文件,即,单一入口文件,开发效率更高;通过URL分析和调度,使所有的控制器和动作都通过URL的参数来访问和执行,使开发过程更简洁;通过路由改写和解析URL,能够更精准地调用控制器,从而进行模型和视图的输出,提高开发效率。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
一种轻量级高性能的PHPWeb***框架,包括:
应用程序生成类,所述应用程序生成类用于完成加载框架启动文件、实例化网站应用实例、应用程序初始化及后续工作;
路由类,所述路由类用于完成路由改写、启动路由解析;
框架基类,所述框架基类位于框架***核心目录class中,其包括框架运行所需要的核心类库及用于网站和项目开发的常用工具类,且所述框架基类能够进行扩展;
构建项目核心配置文件,所述构建项目核心配置文件包括框架核心配置文件和应用程序实例配置文件;
还包括MVC模块,所述MVC模块包括:
模型,所述模型用于封装与业务逻辑有关的代码和数据,例如对订单模型、商品模型分别封装对订单和商品的数据和业务逻辑;
视图,所述视图将程序运行的结果返回给浏览器显示,用于呈现内容给用户,也就是将程序运行的结果返回给浏览器显示,例如商品列表页面、后台登录页面;
控制器,所述控制器用于接收用户输入,即,用户通过浏览器发起的请求,然后调用模型对输入数据进行处理并获得处理结果,最后将结果传递到视图,从而让用户能够看到自己操作的结果。例如用户点击删除文章按钮后,控制器调用操作文章的模型,删除掉指定文章,最后通过视图显示成功删除文章的提示信息,所述路由类通过路由解析后能够调取控制器,获取动作及post、get 等参数集,路由器调用控制器,然后指定相应的模型和视图。
所述常用工具类包括核心类库包、数据库类库包、***工具类库包、异常处理类库包。
所述框架核心配置文件包括框架初始化inc配置文件和框架语言包lang配置文件。
所述应用程序实例配置文件是在应用程序实例化之后生成的***运行时环境和参数、常量的配置文件,包括inc配置文件、lang配置文件、common配置文件和local本地开发配置文件。
一种PHPWeb***框架的工作方法,其包括如下步骤:
步骤1、加载公共入口文件,用户所有的请求,即,通过浏览器输入的请求,都会发送到一个特殊的PHP脚本文件中,这个文件被称为“入口”,新建好的应用程序目录中有一个名为index.php的文件,这个文件就是“入口文件”;
步骤2、创建WEB实例对象,应用程序类在步骤1中的index.php入口文件中,构建项目核心配置文件内的应用程序实例配置文件通过使用new app()的调用方式构造web实例对象,这个对象就是应用程序对象,并定义在框架核心配置文件中,应用程序对象封装了整个应用程序需要的一些公共服务,应用程序类初始化web应用程序并执行应用程序;
步骤3、项目预编译并载入,对应用程序中的项目进行预编译,即,预处理,并将其预编译结果载入应用程序类中;
步骤4、检查并加载插件,应用程序类对预编译结果进行检查,检查内容为检查其完整性,检查完毕后,加载路由类插件;
步骤5、URL分析和调度,路由类对应用程序对象预编译结果的URL参数进行解析,再通过路由类的调度作用来制定控制器和动作的参数值、并检查参数值是否合法,再检查用户有访问制定控制器和动作的权限,最后检查对应的控制器和动作确实存在;
步骤6、获取当前执行的控制器和动作,上述步骤中检查对应的控制器和动作确实存在,路由类即开始获取当前应用程序执行所需的控制器和动作参数;
步骤7、加载控制器配置文件,上述步骤中,路由类获取了控制器和动作参数后,即,将所述控制器和动作参数载入至MVC模块的控制器中,由控制器根据参数来进行配置,获得相应的配置文件;
步骤8、语言检查并读取对应的语言文件,框架核心配置文件对上述步骤中获得的配置文件进行语言检查,读取配置文件中的对应的语言文件;
步骤9、模型检查并定义相关的模型变量,控制器对上述步骤的语言文件进行模型调用,并对调用出的模型的变量进行定义;
步骤10、生成视图文件,MVC模块的视图对上述步骤中定义的模型变量进行URL解析,生成HTML代码发送至用户处,即,浏览器,由用户处对HTML代码进行生成页面并显示。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (5)
1.一种轻量级高性能的PHPWeb***框架,其特征在于,包括:
应用程序生成类,所述应用程序生成类用于完成加载框架启动文件、实例化网站应用实例、应用程序初始化及后续工作;
路由类,所述路由类用于完成路由改写、启动路由解析;
框架基类,所述框架基类位于框架***核心目录class中,其包括框架运行所需要的核心类库及用于网站和项目开发的常用工具类,且所述框架基类能够进行扩展;
构建项目核心配置文件,所述构建项目核心配置文件包括框架核心配置文件和应用程序实例配置文件;
MVC模块,所述MVC模块包括:
模型,所述模型用于封装与业务逻辑有关的代码和数据;
视图,所述视图将程序运行的结果返回给浏览器显示;
控制器,所述控制器用于接收用户输入,然后调用模型对输入数据进行处理并获得处理结果,最后将结果传递到视图,所述路由类通过路由解析后能够调取控制器。
2.根据权利要求1所述的一种轻量级高性能的PHPWeb***框架,其特征在于,所述常用工具类包括核心类库包、数据库类库包、***工具类库包、异常处理类库包。
3.根据权利要求1所述的一种轻量级高性能的PHPWeb***框架,其特征在于,所述框架核心配置文件包括框架初始化inc配置文件和框架语言包lang配置文件。
4.根据权利要求1所述的一种轻量级高性能的PHPWeb***框架,其特征在于,所述应用程序实例配置文件是在应用程序实例化之后生成的***运行时环境和参数、常量的配置文件,包括inc配置文件、lang配置文件、common配置文件和local本地开发配置文件。
5.一种根据权利要求1所述的PHPWeb***框架的工作方法,其特征在于,其包括如下步骤:
步骤1、加载公共入口文件;
步骤2、创建WEB实例对象,初始化WEB应用并执行应用;
步骤3、项目预编译并载入;
步骤4、检查并加载插件;
步骤5、URL分析和调度;
步骤6、获取当前执行的控制器和动作;
步骤7、加载控制器配置文件;
步骤8、语言检查并读取对应的语言文件;
步骤9、模型检查并定义相关的模型变量;
步骤10、生成视图文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018895.6A CN109446454A (zh) | 2018-09-03 | 2018-09-03 | 一种轻量级高性能的PHPWeb***框架及工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018895.6A CN109446454A (zh) | 2018-09-03 | 2018-09-03 | 一种轻量级高性能的PHPWeb***框架及工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109446454A true CN109446454A (zh) | 2019-03-08 |
Family
ID=65533213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811018895.6A Pending CN109446454A (zh) | 2018-09-03 | 2018-09-03 | 一种轻量级高性能的PHPWeb***框架及工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109446454A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543294A (zh) * | 2019-08-16 | 2019-12-06 | 上海易点时空网络有限公司 | Mvc框架*** |
CN110837359A (zh) * | 2019-11-06 | 2020-02-25 | 北京小狗智能机器人技术有限公司 | 一种以GOLANG语言实现的MVC Web框架 |
CN115934043A (zh) * | 2023-01-04 | 2023-04-07 | 广州佰瑞医药有限公司 | 一种基于php的高效率mvc框架 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279343A (zh) * | 2013-05-16 | 2013-09-04 | 北京互动阳光科技有限公司 | 一种基于分布式大型网站开发的技术框架*** |
CN104866327A (zh) * | 2015-06-19 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 一种php开发方法及框架 |
US20150248445A1 (en) * | 2012-11-30 | 2015-09-03 | Facebook, Inc. | Method and system for implementing an array using different data structures |
CN107329755A (zh) * | 2017-06-29 | 2017-11-07 | 青岛华正信息技术有限公司 | 一种hzphp框架 |
-
2018
- 2018-09-03 CN CN201811018895.6A patent/CN109446454A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150248445A1 (en) * | 2012-11-30 | 2015-09-03 | Facebook, Inc. | Method and system for implementing an array using different data structures |
CN103279343A (zh) * | 2013-05-16 | 2013-09-04 | 北京互动阳光科技有限公司 | 一种基于分布式大型网站开发的技术框架*** |
CN104866327A (zh) * | 2015-06-19 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 一种php开发方法及框架 |
CN107329755A (zh) * | 2017-06-29 | 2017-11-07 | 青岛华正信息技术有限公司 | 一种hzphp框架 |
Non-Patent Citations (1)
Title |
---|
TOMADELSTEIN 等: "《LINUX***管理》", 31 January 2009 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543294A (zh) * | 2019-08-16 | 2019-12-06 | 上海易点时空网络有限公司 | Mvc框架*** |
CN110837359A (zh) * | 2019-11-06 | 2020-02-25 | 北京小狗智能机器人技术有限公司 | 一种以GOLANG语言实现的MVC Web框架 |
CN115934043A (zh) * | 2023-01-04 | 2023-04-07 | 广州佰瑞医药有限公司 | 一种基于php的高效率mvc框架 |
CN115934043B (zh) * | 2023-01-04 | 2024-03-15 | 广州佰瑞医药有限公司 | 一种基于php的高效率mvc框架 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9239705B2 (en) | Method and apparatus for customized software development kit (SDK) generation | |
US10853108B2 (en) | Method and apparatus for code virtualization and remote process call generation | |
CN105022630B (zh) | 一种组件管理***及组件管理方法 | |
CN103577168A (zh) | 测试用例创建***及方法 | |
CN109446454A (zh) | 一种轻量级高性能的PHPWeb***框架及工作方法 | |
CN101382893B (zh) | 一种基于Web服务的构件在线组装方法 | |
CN102541732A (zh) | 一种构建Web自动化测试框架的方法 | |
CN111367802B (zh) | web自动化测试方法、装置及计算机可读存储介质 | |
CN113268239B (zh) | 桌面应用的视图构建方法、装置、设备及存储介质 | |
Khaliluzzaman et al. | Pre and post controller based MVC architecture for web application | |
CN106412080A (zh) | 一种基于网络服务实现软件本地化和国际化的方法 | |
CN111580821A (zh) | 脚本绑定方法、装置、电子设备及计算机可读存储介质 | |
CN105426424A (zh) | 一种网络数据定向分页式采集方法 | |
CN110674355B (zh) | 描述数据标注任务的dsl应用***及其方法 | |
CN105511996B (zh) | 一种图形处理器内嵌可编程染色器验证平台 | |
CN118151933A (zh) | 小程序生成方法、装置、电子设备及计算机可读存储介质 | |
CN117311732A (zh) | 一种项目部署方法及相关装置 | |
CN116166270A (zh) | 一种xaml文件修正方法、装置、计算机设备及存储介质 | |
CN114625377A (zh) | 框架项目转换方法、框架项目转换装置、设备及存储介质 | |
CN117195239A (zh) | 微应用资源包生成方法、装置、计算机设备和存储介质 | |
CN116048524A (zh) | 一种页面解析方法、装置、设备及存储介质 | |
CN115587036A (zh) | 一种测试***和测试用例的生成方法 | |
Ardiles et al. | A Client-Server Architecture for Distributed and Scalable Multimedia Content Analysis: An Android App for Assisting Phone Users in Shooting Aesthetically Valuable Pictures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190308 |
|
RJ01 | Rejection of invention patent application after publication |