2012-04-09 72 views
2

對不起,我的英文和通過翻譯寫作。自定義所有錯誤symfony 1.4

我是新來的,我有點失去了什麼,我想,也許你能幫助我,如果他們想,如下解釋:

我想自定義可能產生的所有錯誤(任何錯誤的狀態碼404,500,204,301 ....等等)並且還根據發生錯誤的地方的「模塊」和/或「動作」顯示建議。

我也希望我能在文件重定向「setting.yml」應用程序,像這樣告訴:在「action.class

error_404_module: common 
error_404_action: errors 
error_500_module: common 
error_500_action: errors 
error_204_module: common 
error_204_action: errors 
error_301_module: common 
error_301_action: errors 
........ 

內「應用程序/前端/模塊/通用」。 php「定義」executeErrors「,其中我收到已發生的狀態碼和錯誤發生或好的模塊,部分顯示」app/frontend/modules/common/templates/_errorXXXSuccess.php「和部分我尋求並提取發生錯誤的模塊「引用者」的建議。

嗯,這就是這個想法,在不同的情況和與類型碼404,但不與其他工作完全不同的錯誤類型的動態內容...

,我讀了可以放置我的中間該事件通過創建一個文件「config/error.html.php」和「config/exception.html.php」。事實上,如果我產生這樣的500錯誤並手動執行這些文件。問題是,從那裏我不能從symfony訪問變量。因爲如果是這樣的話,我可以調用「common/errors」和錯誤的發送錯誤狀態碼和它發生的模塊的參數,但事實並非如此。從那裏我可以做的只是使用$ _SERVER和routing.yml,但是無法獲得好的結果,因爲環境與Development Production(/frontend_dev.php)混合在一起,這也是我也想避免的。

也就是說,我想獲得在「setting.yml」中做「error_404_module」和「error_404_action」,但具有不同的錯誤代碼。因此,允許我在生產環境中基於「錯誤或異常」和/或「模塊或行爲」顯示我的自定義頁面,並且在開發模式下(/frontend_dev.php/ .. ..),顯示symfony Dispatch。

當然,生活是複雜的,並有一個更簡單的方法來做我想做的事情,但成千上萬的組合後,得不到正確的結果。即使symfony可能不允許來自「setting.yml」的其他類型的錯誤重定向是因爲它們是爲他或其他東西保留的。我不明白。

請幫助我,因爲沒有文檔在這裏找到和保護,至少我們讓其他人想要做某事的公開。

很多感謝和問候!

回答

0

首先 - 你不能得到symfony截取所有錯誤。某些錯誤可能是服務器錯誤,並且請求甚至不會傳送到您的應用程序。儘管你可以在symfony中明確地設置一些響應,但我可能沒有必要處理所有這些響應。

至於確切的迴應:您應該使用偵聽器將錯誤掛鉤到根據您的需要處理它們的類。有關實施細節,請參閱:https://stackoverflow.com/a/7077818/580167

+0

你好,你鏈接我使用盡可能多的幫助文章,但我不明白的是,我在哪裏定義「類」?我應該在「X」路線中創建一個新文件還是將它添加到另一個文件? 該文章還說,我必須在「/config/ProjectConfiguration.class.php」中調用「$ this-> dispatcher-> connect ....」。我想這是公共職能「設置」,對吧?你也可以從「/frontend/config/frontendConfiguration.class.php」做到嗎? 對不起,但我對Symfony相當新穎......抱歉,謝謝! – Z3R0N3 2012-04-24 11:48:29