Класс как аргумент функции, как это использовать? Не совсем понимаю, как работает передача в аргументы анонимной функции.
Скажем, в Laravel в классе Schema в качестве аргумента передаётся класс BlueprintSchema::create(..., function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->nullable();
$table->string('password')->nullable();
$table->string('provider');
$table->string('provider_id');
$table->rememberToken();
$table->timestamps();
});
Schema каким-то образом передаёт в переменную $table свойства Blueprint и позволяет выполнять в теле анонимной функции свои методы.
В обработчике ошибок так же есть нечто похожее на то, что я показал вышеtry {
thisFunctionDoesNotEvenExist(); //ЭтаФункцияДажеНеСуществует()
} catch (\EngineException $e) {
// Подчищаем за собой и записываем информацию об ошибке в лог
echo $e->getMessage();
}
Примеров много еще могу привести, главное, чтобы вы поняли суть вопроса
Собственно, вопрос: что это вообще такое, как гуглить, где читать? Будет неплохо, если будут примеры или толковые объяснения. Есть подозрения, что это как-то связано с паттернами проектирования.

21 Авг 2019 в 07:00
211 +1
1
Ответы
1

Это, что вы показываете, называется анонимные функции или замыкания (closures) в PHP. Анонимные функции позволяют передавать функции как аргументы в другие функции, сохранять их в переменных, и использовать их внутри других функций.

В вашем примере, когда вы передаете анонимную функцию в метод create класса BlueprintSchema, вы создаете замыкание, которое имеет доступ к методам и свойствам объекта, в данном случае Blueprint. Это позволяет вам определять структуру таблицы базы данных, используя методы объекта $table.

В обработчике ошибок, вы используете блок try-catch для перехвата и обработки исключения типа EngineException. Это позволяет вам выполнить определенные действия при возникновении исключения, такие как вывод сообщения об ошибке или запись информации в лог.

Чтобы узнать больше о анонимных функциях и обработке исключений в PHP, вы можете почитать официальную документацию PHP или искать информацию в Интернете. Также рекомендуется изучить паттерны проектирования, такие как Стратегия и Наблюдатель, которые могут быть полезны при работе с анонимными функциями и обработкой исключений.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир