2015-05-25 3 views
1

Я учусь Laravel 5, и получить немного путать в этих строках кода (создание поставщика услуг):Затворы обратные вызовы в PHP (Laravel 5)

public function register() 
{ 
    $this->app->singleton('Riak\Contracts\Connection', function($app) 
    { 
     return new Connection($app['config']['riak']); 
    }); 
} 

Я не могу понять $app переменную, и Фром где он будет передан в функцию? Благодаря!

P.S. И, пожалуйста, исправьте, если я ошибаюсь, я прочитал некоторые сообщения, и как я понимаю, закрытие - это анонимные функции, которые используют vars извне (используя use()), а лямбда-функции - это просто закрытие того, что не использует эти вары. Или я что-то упускаю?

ответ

1

Это $this->app->singleton, который проходит $app до закрытия обратного вызова, когда он вызывается.

1

Анонимная функция: Callable, которая передается функции singleton в объекте $app.

Функция singleton затем вызывает Callable (анонимные функции), что вы прошли к нему, и передает $app в качестве аргумента в анонимную функцию.

Смежные вопросы