Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5中中间件和服务提供商之间的区别?_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5中中间件和服务提供商之间的区别?

Php Laravel 5中中间件和服务提供商之间的区别?,php,laravel,laravel-5,Php,Laravel,Laravel 5,服务提供者在引导过程中将服务添加到应用程序容器中,而中间件 中间件可以在请求/控制器执行/响应之间形成一条链 他们获得了请求/响应引用,因此可以自由修改请求/响应。您可以记录一些内容、修改响应、重定向等 它可以形成这样的链条: ->请求->提供者->中间件1->中间件2->控制器方法->中间件3->响应 ->请求->提供者->中间件#1->重定向 服务提供商是完全不同的。当应用程序启动时,它会调用已注册的服务提供商。这些提供者可以将实例登记到IOC容器、控制台命令、视图作曲家等。 < P>正如名

服务提供者在引导过程中将服务添加到应用程序容器中,而中间件

中间件可以在请求/控制器执行/响应之间形成一条链

他们获得了请求/响应引用,因此可以自由修改请求/响应。您可以记录一些内容、修改响应、重定向等

它可以形成这样的链条:

  • ->请求->提供者->中间件1->中间件2->控制器方法->中间件3->响应

  • ->请求->提供者->中间件#1->重定向


  • 服务提供商是完全不同的。当应用程序启动时,它会调用已注册的服务提供商。这些提供者可以将实例登记到IOC容器、控制台命令、视图作曲家等。

    < P>正如名称所示,中间件通常处于请求和响应的中间(示例自定义验证)。请记住,它们被称为always if defined,意思是如果你需要做一些事情,它们总是非常方便的


    服务提供商也会做类似的事情,但不依赖于请求/响应,而是依赖于应用程序引导时间,即初始化过程。

    将中间件视为请求过滤器。服务提供商是。。。好的,就是提供服务的东西(笼统地说是工厂,尽管这过于简单化了)。每个角色的角色有很大的不同。所以中间件在提供者之后,有道理为什么用依赖于中间件数据的变量定义视图生成器不起作用。谢谢@Tacsiazuma