На каком уровне в Symfony перехватывать ошибки?

Коллеги, добрый вечер!
На каком уровне в Symfony перехватывать ошибки, что бы сервер отвечал всегда валидным JSON.
Идея заключается в том, что при любом исходе, клиент всегда получал JSON определённой структуры.

Например:
/database.getCityById?id=3538
{
    "data": {
        "id": 3538,
        "name": "Воронеж",
        "region": {
            "id": 3529,
            "name": "Воронежская обл."
        },
        "country": {
            "name": "Россия",
            "id": 3159
        }
    },
    "code": 0
}


Но в какой-то момент, что, то произошло, например база данных дала клину или что-то ещё.

Фреймворк перехватывает ошибку.
Информацию записывает в лог, а клиенту что-то типа

{
  "code": 1,
  "msg": "unknown error"
}


Мне нужно это для того что бы Nuxt всегда правильно реагировал на подобного рода ошибки.

Мой первый вариант:
Перехват на самом верхнем уровне

try {
    $response = $kernel->handle($request);
} catch (Exception $e) {
    $response = new JsonResponse(["code" => 1]);
    $response->send();
}
  • Вопрос задан
  • 231 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы