zl程序教程

您现在的位置是:首页 >  后端

当前栏目

PHP 框架中间件实现

2023-09-11 14:14:55 时间

前言

中间件是很多 PHP 框架都提供的功能,在初次认识它的时候我感到惊讶和兴奋。因为它的作用太强大了,在没有中间件之前我们不得不将权限验证和一些公共操作都写在控制器方法里,然后控制器就会变得很臃肿,降低了可读性和可维护性。

但有了中间件我们就可以这些操作都写在中间件里,然后通过使用不同的中间件组合不仅能够实现需求还降低了代码的耦合度。

既然中间件百般好,那它到底是如何实现的呢?

我发现其重点就是要将多个中间件闭包(有些框架中间件并不是通过闭包实现但都属于 callable 的范畴,为了行文方便统称为闭包)通过 array_reduce 或循环的方式将其打包成为一个闭包的过程。

1 预热