欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

php实现中间件6,说一说ThinkPHP6中五花八门的中间件_PHP开发框架教程

发布时间:2023/12/2 php 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 php实现中间件6,说一说ThinkPHP6中五花八门的中间件_PHP开发框架教程 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

thinkphp配置配置多应用多配置的方法_PHP开发框架教程

一般的thinkphp框架一般都是单模块开发的,但有时候我们可能需要进行多模块开发,本文就来为大家介绍一下thinkphp配置多模块、多应用的方法。在ThinkPHP6中新增中间件功能,而且中间件又分很多类型的中间件,很多新手对ThinkPHP6中间件很犯难,下面就给大家分别介绍下。

全局中间件:

我们下载好ThinkPHP6的框架后,在app目录下就有一个middleware.php,我们在app目录下定义的中间件叫做全局中间件,全局中间件是对所有应用都生效的中间件。

应用中间件:

那换而言之,如果我们再复制一份middleware.php放在了某个应用下,比如index应用,是不是就叫做应用中间件呢,答案是对的。

控制器中间件:

如果在控制器中操作中间件,是不是就叫做控制器中间件?

路由中间件:

那可不可以在路由中也定义中间件,比如我只想让某个请求使用某个中间件,其他的并不想使用中间件,那也就有了路由中间件。

如果同一个请求,所有类型的中间件都定义了,那执行顺序是如何呢?

全局中间件->应用中间件->路由中间件->控制器中间件

接下来我们看一个实例。

全局中间件:如何大型 Laravel 项目中组织路由_PHP开发框架教程

想象一下一个拥有 100 多个路由的 Laravel 项目,其中包括访客,用户,管理员等分离的模块。你真的要将所有内容写在在一个文件中吗?那么如何将它们分组,并且为 URL 添加前缀呢?看看有哪些办法。

public function handle($request, \Closure $next)

{

echo 'app全局中间件';

return $next($request);

}

应用中间件:

public function handle($request, \Closure $next)

{

echo '应用中间件';

return $next($request);

}

路由中间件:

Route::rule('hello','index/hello')

->middleware(\app\middleware\Auth::class);

控制器中间件:

在使用控制器中间件之前,我们先定义好别名,在根目录下config\middleware.php中定义别名。这个别名其实就是增加别名标识。别名定义好后,不仅在控制器中间件可以使用,路由中间件也可以使用。

return [

'alias' => [

'auth1' => app\middleware\Auth1::class,

],

];

我们在这里定义别名中间件,就不需要在middleware.php中声明了,而是通过在控制中使用别名定义:

class Index

{

protected $middleware = ['auth1'];

public function index()

{

return 'index';

}

public function hello()

{

echo 'hello方法';

}

}

这个时候我们访问hello方法,输出结果是:

app全局中间件

应用中间件

路由中间件

控制器中间件

hello方法

以上就是ThinkPHP6各种中间件的介绍,其实各种中间件并不难理解,主要在于它们之间的执行顺序需要大家明确。

总结

以上是生活随笔为你收集整理的php实现中间件6,说一说ThinkPHP6中五花八门的中间件_PHP开发框架教程的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。