这个闭包看不懂

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 行,看了下不知道是什么意思

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

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

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

file

3年前 评论

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