我正在調試用自定義框架編寫的相當複雜的PHP/AngularJS應用程序。文檔幾乎不存在,並且沒有明確的命名和文件夾約定。PHP(Linux):列出已執行的文件
對我來說最大的挑戰是找到哪些文件在特定的請求中執行。該應用程序有幾種不同的自動加載方式,它有超過4500個PHP文件。
是否有可能找出哪些文件被執行而不修改應用程序代碼?我正在運行Ubuntu 15.10。
如果不是,下一步最好的方法是做什麼?我知道get_included_files函數,但我認爲它不會幫助我。
在此先感謝。
我正在調試用自定義框架編寫的相當複雜的PHP/AngularJS應用程序。文檔幾乎不存在,並且沒有明確的命名和文件夾約定。PHP(Linux):列出已執行的文件
對我來說最大的挑戰是找到哪些文件在特定的請求中執行。該應用程序有幾種不同的自動加載方式,它有超過4500個PHP文件。
是否有可能找出哪些文件被執行而不修改應用程序代碼?我正在運行Ubuntu 15.10。
如果不是,下一步最好的方法是做什麼?我知道get_included_files函數,但我認爲它不會幫助我。
在此先感謝。
假設你有一個專用的測試環境,那麼確保緩存過大,運行你的測試並查看加載到操作碼緩存中的內容。對於較新的PHP安裝,請使用opcache_get_status()作爲較舊的APC緩存,請使用apc_cache_info()
我不確定無需修改應用程序代碼即可找出該問題。
但我認爲對於PHP部分debug_backtrace可以幫助,如果你知道你的端點在哪裏。有了這個,你可以重現一個進程,比如一個異常堆棧跟蹤。
另一個:你可以使用一個像xdebug這樣的調試器,並通過帶有一些制動點的系統,這樣你就可以看到應用程序的流程了。