Я пытаюсь создать веб-службу REST, которая возвращает JSON для всех вызовов. Обычно это довольно просто, мне просто нравится:
return new Response(json_encode($return_object));
Мой вопрос в том, как я должен перехватывать исключения в глобальном масштабе? Я хочу сделать это, потому что, если где-то в моем приложении произойдет исключение, я все равно хотел бы вернуть клиенту сообщение JSON, говорящее в основном: «Эй, чувак, я слышал, что тебе нравятся исключения». Я думаю, что возврат JSON как в случае успеха, так и в случае неудачи упростит работу, которую должен выполнить любой клиент для реализации моего API.
Пока единственное, что я могу придумать, это написать каждое действие контроллера вот так:
public function generateMemeAction($arg1, $arg2) {
$return_object = array();
try {
// stuff to generate meme here
$return_object['status'] = "GREAT SUCCESS!";
} catch (Exception $e) {
// epic fail
$return_object['status'] = "UnluckyBrianException";
}
return new Response(json_encode($return_object));
}
Все это здорово и замечательно, но этот блок catch try -будет одинаковым для каждого действия в моем приложении, и я буду чувствовать себя глупо каждый раз, когда мне придется редактировать кучу пасты для копирования. Про советы?