В Laravel routes, перед callback функцией используется static, для чего оно нужно?
В коде проекта в Laravel routes файле есть код в котором используется не известная мне конструкция, а именно перед callback функцией используется static, для чего это сделанно ?
Route::group(['namespace' => 'Api'], static function () {
Route::group(['namespace' => 'v1', 'prefix' => 'v1'], static function () {
Route::get('/rates', 'RatesController');
Route::post('/convert', 'ConvertController');
});
});
Ответы (1 шт):
Это ограничивает доступ внутри функции к $this - объекту класса, в методах которого она создана.
Подробнее https://www.php.net/manual/ru/functions.anonymous.php#functions.anonymous-functions.static
Этот код в Laravel не имеет контекста класса, поэтому использование анонимной функции без static бессмысленно.
Если пользуетесь PhpStorm, плагин https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended- будет предлагать вам использовать static, если нет обращения к $this. Возможно улучшение производительности.