public function createApplication() { $app = new ApplicationTest(); $app['route_class'] = 'Euskadi31\\Silex\\Controller\\RouteTest'; $app['debug'] = true; //unset($app['exception_handler']); $app->mount('/', new AuthorizeControllerProvider()); $app->error(function (Exception $exception, $code) use($app) { $e = FlattenException::create($exception); $headers = []; if ($exception instanceof HttpExceptionInterface) { $headers = $exception->getHeaders(); $code = $exception->getStatusCode(); } else { $code = $exception->getCode(); } if ($code < 100 || $code >= 600) { $code = 500; } $error = ['error' => ['message' => $exception->getMessage(), 'type' => join('', array_slice(explode('\\', get_class($exception)), -1)), 'code' => $code]]; if ($this->app['debug']) { $error['error']['exception'] = $e->toArray(); } return new Response($app->json($error, $code, $headers)); }); return $app; }