我正在開發一個沉重的AJAX Symfony 2應用程序。我的大部分操作都是以這種方式開始的:當請求不是AJAX請求時拋出什麼樣的異常?
if($this->getRequest()->isXmlHttpRequest()) {
// Do something
}
該操作僅當它響應AJAX請求時才必須執行。我認爲這將是爲了簡潔起見,更好地縮進更好做的事情是這樣的:
if(false === $this->getRequest()->isXmlHttpRequest()) {
// throw some exception
}
// Do something
我的問題是我不知道什麼是最appropiate例外,我可以拋出做。我想就這個問題得到一些反饋。也許AccessDeniedException? Symfony預定義的Exception是否適合?或者我應該創建一個新的異常擴展基本的PHP異常類?任何意見將非常感激,併爲我的英語感到難過。
編輯:這個呢?
https://github.com/symfony/HttpKernel/blob/master/Exception/BadRequestHttpException.php
感謝朋友,你的文章真的很有用。只是想我會澄清的是,Symfony中的AccessDeniedException將返回一個403響應,而不是一個401響應。然而,這個異常在Symfony中使用,當用戶沒有所需的角色,所以我想403是要走的路,但該類不說服我,也許我應該去你的最後一個解決方案。非常感謝! – vicmarq