我们来看一下laravel管道的拼接方式, 欢迎讨论
关于管道的概念
管道:顾名思义,将一种物质通过一根管材进行传递直到最终容器.
现实中使用管道最多的地方其实是化工厂, 本人有幸毕业的时候在实验室待过1年左右, 所以还是知道管道的样子的, 管道无论长短, 单独一根管道长度总是有限的,所以管道拼接是十分必要的, 另外,管道拼接的作用不仅是为了达成管道长度以及运输的目的, 不同的管道其实可以类比为一个特定功能的容器,经过不同管道阶段的处理,将原料发酵,达成最终目的.
来看下面一段代码
// 闭包累计 类似于管道拼接
$closure_set = array_reduce([1, 2], function ($carry, $item) {
return function($target) use ($carry, $item) {
return $carry($target . $item);
};
}, function ($target) {
return $target;
});
$res = $closure_set('hi');
大家可以猜一下运行结果吗? 可以先猜一个结果,然后再去运行代码获取结果.
欢迎大家来讨论.~
这里应要求贴一下Laravel中实现管道的代码位置:
应用管道的位置,其实是处理请求
vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php
这里是实现的位置:vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php
当闭包开始嵌套,地狱也在逐渐形成. –鲁迅
推荐文章: