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