Ответ 1
Приложение REST имеет разные типы ошибок. Например. вы можете иметь логические ошибки или ошибки ввода (не все параметры были отправлены). Различные типы ошибок должны обрабатываться с использованием различных способов. Лучшим способом для этого случая является ручная обработка этих ошибок.
Вы можете добавить к вашему специальному методу ошибки Controller (и поместить его, например, в родительский класс), который вернет код ошибки + текст ошибки.
Но если вы хотите использовать автоматическую обработку, вы можете использовать прослушиватель Exception:
-
http://api.symfony.com/2.0/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.html - http://api.symfony.com/2.7/Symfony/Component/HttpKernel/Event/GetResponseForExceptionEvent.html
- http://symfony.com/doc/current/book/internals.html
Вот пример:
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpFoundation\Response;
public function onKernelException(GetResponseForExceptionEvent $event)
{
$exception = $event->getException();
$response = new Response();
// setup the Response object based on the caught exception
$event->setResponse($response);
// you can alternatively set a new Exception
// $exception = new \Exception('Some special exception');
// $event->setException($exception);
}