Допустим, у меня есть замыкание:Передача переменной закрытия
$object->group(function() {
$object->add('example');
$object->add('example');
});
Это не будет работать, потому что $ объект не определен в замыкании.
Примечание: Undefined переменной: менеджер
Так что я бы use ($object)
:
$object->group(function() use ($object) {
$object->add('example');
$object->add('example');
});
Теперь я хочу, чтобы держать его так просто, как первый, так как-то объект $ должен быть введен к закрытию.
Laravel Framework делает это с маршрутами, например:
Route::group(['middleware' => 'auth'], function() {
Route::get('/', function() {
// Uses Auth Middleware
});
Route::get('user/profile', function() {
// Uses Auth Middleware
});
});
Я считаю, что Laravel делает это с Reflection класса.
Как я мог достичь этого?
Я не вижу абсолютно ничего плохого в 'function() use ($ object)'. С другим подходом нет ничего более чистого. Абсолютно zilch. –
Я просто хочу знать, как это делает Laravel. –
Laravel использует 'static'. Вы используете объекты. –