Позвольте мне объяснить это.
Предположим, у нас есть функция - метод API с именем phone.add
, и конечный пользователь вызывает http://example.com/api/v1/phone.add
с некоторыми параметрами.Перед выполнением реальной функции где-нибудь в классе PhoneManager
нам нужно выполнить 2 универсальные проверки - проверить параметры и права доступа.
Пусть метод phone.add
API выглядит следующим образом:
function phone_add(string $param1, int $param2, callable $param3): float {
//... validate $param1, $param2, $param3
//... check access rights
//... call PhoneManager::add()
//... return result
}
Очевидно, что проверки могут завершиться неудачно, и соответствующий ответ должен быть сформирован и отправлен, но добавить его немного беспорядочноif (validation_failed(...)) return new Response(...)
в каждом методе API, поэтому ... как можно вернуть из вложенной функции фактический окончательный ответ или как этот алгоритм (набор действий) должен быть реализован правильно?
Спасибо!