我很抱歉,如果這已經回答了某個地方,但我還沒有設法找到答案,目前爲止 - 也許我正在尋找錯誤的東西!PHP OO - 我應該如何處理多個類的軟錯誤?
我想弄清楚如何處理我的OO PHP系統中用於生成網頁的錯誤。希望這個例子能解釋我的意思。
想象一下,我有一個Content類,一個Form類和一個FormObject類,它們包含頁面內容,Web窗體和表單域的所有信息。所有類都可以通過DB類運行多個MySQL查詢。 用戶可以在後端創建新的內容或表單。當他們這樣做時,我使用這些類來創建數據並將其存儲在數據庫中。
我也有一個系統類,它用於生成網頁。 System類檢查應在前端顯示的內容,構建適當的Content和Form對象,然後生成HTML並將其輸出到屏幕。
我對嚴重錯誤進行了一些檢查,這些錯誤會阻止代碼進一步發送。但是,問題是我想反饋一些「軟錯誤」到前端。例如,也許System類構建一個Form對象,該對象依次使用FormObject類構建這些字段。 FormObject類查詢數據庫中的字段名稱,但未找到字段名稱。所以DB類返回一個錯誤。我希望能夠將消息反饋給前端,說明未找到字段名稱。
將「軟錯誤」消息返回到System類的最佳方式是什麼,以便它可以輸出到前端? 我知道這個例子相當簡單,但隨着更多的類被添加,並且關鍵的是,更多的級別被添加,問題變得更大。
我認爲這樣做的一種方法是創建一個Error類。系統會創建一個Error對象,並在創建時將它傳遞給每個Content和Form對象。 Form類將傳遞相同的Error對象到FormItem類。每當發現錯誤時,都會通過Error類中的方法進行記錄。然後系統可以訪問原始的Error對象並輸出所有錯誤。然而,隨着系統的增長,更多的類被添加,並且更多的對象被創建,它會變得相當混亂。有沒有更好的辦法?
也許你可以拋出一個異常,然後添加[默認的異常處理(http://php.net/manual/en/function.set-exception-handler.php),將記錄錯誤或向瀏覽器顯示一些內容。 – Mike
謝謝邁克。我不是特別想要輸出到發現錯誤的位置,因爲想法是生成HTML,然後一次輸出。例如,如果我回顯一個錯誤,它將出現在所有HTML之上。我想在HTML中的特定錯誤div中顯示所有軟錯誤。如果我記錄錯誤,我會在哪裏登錄?我可以將它存儲在全局變量中嗎? –
當你需要顯示一小段代碼 – meda