0
我正在从RESTler API框架切换到Silex。部分挑战是确保我们API的响应不会改变,因为我们有依赖于它的生产应用程序。目前出的现成的Silex 2.0拦截了我们的JSON错误处理程序以及与此替换它:Silex JSON样式响应
我需要一个反应是:
{
"error": {
"code": 400,
"message": "This API key is not authorized to complete the operation"
}
}
我已经发现了解决方案的片段,但它们大多数都过时了,或者我无法让它们与Silex 2.0一起工作。
我可以轻松地做
if (!$controllerResponseData) {
$error = array('message' => 'This API key is not authorized to complete the operation');
return $app->json($error, 400);
}
然而这个本来在航线水平上进行,迫使我重写我所有的控制器。他们不管理错误,在业务逻辑和模型层面处理更深。
他们是否可以重写Silex中的默认错误处理?另外,最理想的是进行错误处理,因为它是用于调试的,但在生产或本地测试中很容易切换到JSON错误响应。
您是否尝试查看[Errorhandlers](http://silex.sensiolabs.org/doc/master/usage.html#error-handlers)? – Samundra
@Samundra是的,这实际上是问题的一部分。我需要在整个应用程序中传递$ app,以便将其应用到一些业务逻辑,验证器和模型层。我只需要拦截我认为是交响乐的异常。无论在哪里,我都会抛出新的RestException(400,'某条消息')'它被拦截,并且我得到了Whoops错误。 – SeaFuzz