我正在学习Laravel 5,并对这些代码行(创建服务提供商)感到有点困惑:
public function register()
{
$this->app->singleton('Riak\Contracts\Connection', function($app)
{
return new Connection($app['config']['riak']);
});
}
我无法理解$app
变量,并将它传递到函数中?谢谢!
P.S。如果我错了,请更正,我读了一些帖子,以及我如何理解闭包是一个使用来自外部范围的变量(通过使用use ()
)的函数,而lambda函数只是关闭什么不使用这些变量。或者我想念什么?
答案 0 :(得分:1)
调用它时,$this->app->singleton
将$app
传递给回调闭包。
答案 1 :(得分:1)
匿名函数是Callable
,它传递给对象singleton
中的函数$app
。
函数singleton
然后调用传递给它的Callable
(匿名函数),并将$app
作为参数传递给匿名函数。