首页 > 后端开发 > 正文

php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的

2023-09-24 13:18:49 | 我爱编程网

今天,我爱编程网小编为关注后端开发的同学们准备了php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的,下面一起来看一下吧。

php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的

比如浏览器输入一个url,mvc框架是怎么执行的

mvc框架,有很多种。
新的mvc写法,url对应路由。而传统的mvc对应的是控制器。
例如laraval的url访问对应的是路由,thinkphp框架默认对应控制器,但你也可以写上路由;
你要问的是哪种?

如果单纯的问mvc执行流程的话,分为以下:
1、控制器(C)接收url请求;
2、控制器(C)接收url请求之后,向相应模型(M)请求数据;
3、模型(M)从数据库获取数据并且返回给控制器(C);
4、这时候控制器(C)有了数据,但是数据不能直接呈现给用户,这时候控制器,请求相应的视图(V);
5、最后视图将数据显示给用户。

php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的

写出MVC的工作原理

1.当用户在浏览器中点击一个链接或者提交一个表单时,那么就会产生一个请求(request)。当请求离开浏览器时,它会携带用户请求的信息。


2.请求的第一站到达的是Spring的DispatcherServlet,它是一个前端控制器,工作是将用户的请求委托给其他的组件(这里是交给Spring MVC的控制器)去处理。

这里DispatcherServlet要决定将请求传给哪一个控制器(Controller)去处理,那么这时就需要处理器映射(Handler Mapping)了。

处理器映射会看请求的URL信息,然后决定将请求交给哪一个控制器去处理。比如说有两个控制器ControllerA和ControllerB,分别处理后缀名为.html和.jsp送来的请求,那么当请求者的后缀名为.html时,那么DispatcherServlet就将请求交给ControllerA进行处理。

C代表Controller,负责用户界面和业务逻辑层的通信控制,一方面解释来自用户界面的输入,识别用户动作(如点击按钮等),调用相应Model中的方法,另一方面处理来自Model的事件和返回的执行结果,调用适当的View显示给用户,Controller主要由Servlet完成。

M代表Model,负责整个解决方案的业务逻辑实现,底层的数据库也由Model访问和操作;

V代表View,负责系统向用户的展示,主要由HTML及JSP等完成;

拓展资料:

MVC组件说明:

以下组件通常使用框架提供实现:

DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。 我爱编程网

HandlerMapping:通过扩展处理器映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

HandlAdapter:通过扩展处理器适配器,支持更多类型的处理器。

ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。

组件:
1、前端控制器DispatcherServlet(不需要工程师开发),由框架提供
作用:接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。


用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

2、处理器映射器HandlerMapping(不需要工程师开发),由框架提供
作用:根据请求的url查找Handler


HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

3、处理器适配器HandlerAdapter
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler


通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

4、处理器Handler(需要工程师开发)


注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。


由于Handler涉及到具体的用户业务请求,所以一般情况需要工程师根据业务需求开发Handler。

5、视图解析器View resolver(不需要工程师开发),由框架提供
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)


View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。

一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由工程师根据业务需求开发具体的页面。

6、视图View(需要工程师开发jsp...)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

参考资料: 百度百科-MVC

php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的

php mvc框架的理解

MVC是M(模型)V(视图)C(控制器)的缩写,它是一种软件架构模式,用于将应用程序的逻辑、数据和界面进行分离。在MVC模式中,模型主要负责处理数据,视图主要负责呈现界面,而控制器主要负责处理用户输入和业务逻辑。这种模式可以使应用程序易于维护、扩展和测试。

PHP MVC框架就是基于MVC模式的一种Web应用程序开发框架,它提供了一套标准化的开发流程和框架组件,使开发人员可以更加高效地开发Web应用程序。常见的PHP MVC框架有Laravel、Yii、CodeIgniter等。

在PHP MVC框架中,模型通常是处理数据的类或接口,例如ORM(对象关系映射)工具、数据库访问类等。视图通常是处理用户界面的模板文件,例如使用HTML、CSS、JavaScript等技术进行页面设计和渲染。控制器是框架的核心组件,它负责接收和处理用户的请求,处理业务逻辑并将结果返回给用户界面。控制器通常会调用模型和视图组件来完成请求的处理过程。

PHP MVC框架通常提供了一套公用的组件库,包括ORM工具、缓存组件、表单验证组件等,这些组件可以跨多个项目复用,提高了开发效率。框架还提供了一些命令行工具和代码生成器,用于自动生成模型、控制器和视图等代码。

使用PHP MVC框架可以让开发人员更加专注于业务逻辑和用户体验方面的开发,而避免了一些重复性的工作,提高了开发效率和系统的可维护性。

以上就是我爱编程网小编为大家带来的php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的,希望对大家有帮助,了解更多相关资讯请关注我爱编程网。
与“php中mvc框架路由原理 比如浏览器输入一个url,mvc框架是怎么执行的”相关推荐
php框架执行原理 php中为什么实现mvc
php框架执行原理 php中为什么实现mvc

什么是php框架?php框架对很多新手而言可能会觉得很难攀越,其实不然,只要知道一个框架的流程,明白原理了,基本类似框架都可以看懂,php框架真正的发展要从php5开始了,其实php4时代就有一些框架,但是因为框架并没有给大家带来多方便而觉得很复杂,速度没有纯php好,所以一直到了php5才有大的发展,php5的面向对象模型的修改对框架的发展起了很大的作用。2php框架介绍框架

2023-09-11 17:11:54
php的mvc框架执行效率 php mvc框架的理解
php的mvc框架执行效率 php mvc框架的理解

phpmvc框架的理解MVC是M(模型)V(视图)C(控制器)的缩写,它是一种软件架构模式,用于将应用程序的逻辑、数据和界面进行分离。在MVC模式中,模型主要负责处理数据,视图主要负责呈现界面,而控制器主要负责处理用户输入和业务逻辑。这种模式可以使应用程序易于维护、扩展和测试。PHPMVC框架就是基于MVC模式的一种Web应用程序开发框架,它提供了一套标准化的开发流程和框架组件,使开发

2023-09-26 19:13:28
php框架路由 thinkphp3.1快速入门路由 怎么输出
php框架路由 thinkphp3.1快速入门路由 怎么输出

请问这种方式的(index.php?g=System&m=Admin&a=insert)路由控制是什么php框架写的?thinkphp有这种模式g分组m控制器a方法链接的意思是告诉框架我要运行System分组下Admin.class.php文件中的publicfunctioninsert()方法这种模式其实你自己简单的写个路由也可以实现先get到链接中的所有参数然后将后面的参数转

2023-08-25 20:10:04
php框架的路由原理 php为什么要使用路由器
php框架的路由原理 php为什么要使用路由器

如何写一个PHP框架呢?思路是什么,需要注意些什么?第一步实现自动加载第二步实现依赖注入容器第三步实现路由第四步实现控制器第五步实现模型第六步实现最基本的一些辅助操作类1.Db类,数据库操作少不了2.数据操作类,接收过滤getpostputdelete等数据3.配置文件操作类,任何一个框架都少不了,是吧。4.模板引擎,如果是前后端分离的

2023-09-19 20:47:46
php框架路由原理 什么是php框架?
php框架路由原理 什么是php框架?

如何写一个PHP框架呢?思路是什么,需要注意些什么?第一步实现自动加载第二步实现依赖注入容器第三步实现路由第四步实现控制器第五步实现模型第六步实现最基本的一些辅助操作类1.Db类,数据库操作少不了2.数据操作类,接收过滤getpostputdelete等数据3.配置文件操作类,任何一个框架都少不了,是吧。4.模板引擎,如果是前后端分离的

2023-09-12 18:46:52
框架中的路由机制php php如何实现url路由分发功能
框架中的路由机制php php如何实现url路由分发功能

php如何实现页面路由转发php实现页面路由转发的方法:首先配置nginx服务器,在【.htaccess】中写上nginx的语法;然后打开根目录的【index.php】,编写文件路由即可。php实现页面路由转发的方法:1、配置nginx服务器nginx服务器不会自动读取.htaccess,也不支持.htaccess语法,这里需要做一个投机取巧的方法:在.htaccess中写上n

2023-09-30 11:46:47
php自己实现mvc框架 如何入门一个PHP MVC框架
php自己实现mvc框架 如何入门一个PHP MVC框架

如何入门一个PHPMVC框架一。选择一个框架至于选哪一种框架,主要看个人,1)最好是身边朋友都有人在用,因为你不懂的时候方便解决。有时候论坛,手册上的解答你未必理解的通透,特别是没有接触过框架的phper来说,更是不知所云。2)选择此框架论坛比较活跃的,这是身有同感,前一段时间玩qeephp框架的时间,论坛冷冷清清的,工作需要,没办法,只能硬着上了,遇到问题的时候,回答的问题的人很少,同

2023-08-27 22:55:07
php框架中路由的原理 ThinkPHP的几种路由形式总结
php框架中路由的原理 ThinkPHP的几种路由形式总结

php为什么要使用路由器电脑为什么用路由器才能上网首先要明白电脑并非一定要使用路由器上网:1、如果你的网络是运营商给的固定IP。那就右键网络--属性--本地连接--属性--双击ipv4,直接填上运营商给你的IP,网关,及DNS,这样就可以上网了。2、如果你的网络是运营商给的登陆账号和密码。那就右键网络--属性--设置新的连接和网络--连接到Internet--宽带

2023-09-28 22:26:16