問體面的想法這一點:如何使用回溯追蹤失敗的文件夾雜?
我想實現在PHP代碼中的一些機制,可以運行任何外部代碼,如果夾雜物的一個失敗其中(include
,require
調用回調函數+ *_once
)。
外部代碼意味着正在執行的代碼不是由我編寫的,也沒有對它的控制權。它包含在測試中。因此,詳細瞭解夾雜物故障更深入是有幫助的。
我正在運行的問題,它看起來不可能有一個PHP的致命錯誤發生時的回調。
我試過到目前爲止:
- 通過
set_error_handler
註冊錯誤處理 - 不帶致命錯誤工作。 - 使用
__destruct()
方法創建對象實例 - 未調用致命錯誤。 - 已註冊關閉功能 - 不會對致命錯誤進行調用。
在任何這些我只是想獲取debug_backtrace
,然後處理給出的信息。
所以問題很簡單:如何從PHP代碼中跟蹤失敗的文件包含,然後調用一個函數。
我擔心這個問題的答案是不是來自我最近的嘗試和搜索,所以任何有洞察力的高度讚賞。即使你的回答只會加強「不可能」的觀點。
此外,它是有幫助,以及是否有可能找出哪個文件是將被列入,包含以前那麼創建調試輸出(失敗與否)至少可以完成。
備註:
- 優選W/O擴展。但是如果存在的話,我也很想知道。
- 外部代碼意味着正在執行的代碼不是由我編寫的,也沒有對它的控制權。它包含在測試中。因此,詳細瞭解夾雜物故障更深入是有幫助的。
相關:
- How can I get PHP to produce a backtrace upon errors?
- set_error_handler() doens't work for FATAL error(
register_shutdown_function
+error_get_last
)
你不能,因爲一個失敗的需求總是會導致一個致命的錯誤,而一個致命的錯誤總是會停止你的代碼。跟蹤失敗包括但是會很容易。 – dqhendricks
@dqhendricks:你讓我好奇。你有什麼想跟蹤失敗包括? – hakre
創建一個自定義錯誤處理程序,檢查該特定錯誤的錯誤字符串。 – dqhendricks