这个闭包看不懂

protected function getClosure($abstract, $concrete)
    {
        return function ($container, $parameters = []) use ($abstract, $concrete) {
            if ($abstract == $concrete) {
                return $container->build($concrete);
            }

            return $container->resolve(
                $concrete, $parameters, $raiseEvents = false
            );
        };
    }

这个是
D:\laravel5.8\vendor\laravel\framework\src\Illuminate\Container\Container.php
第265 行,看了下不知道是什么意思

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

翻看这个方法被调用的地方,注释写的很清楚,就是为了将不是闭包的参数转换为闭包,所以 getClosure 返回了闭包。

如果工厂不是一个闭包,这意味着它只是一个绑定到这个容器中的抽象类型的类名,我们将把它包装在它自己的闭包中,以便在扩展时更方便。(有道翻译)

file

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!