2010-02-03 75 views
4

我正在開發一個Zend的Web服務,更具體地說,我是Zend_Amf與Adobe Flex互操作。這個問題是我不能輕易看到PHP錯誤,因爲Flex調試器不會顯示來自服務器的實際答案,除非它們是正確的Amf。如果我使用Web瀏覽器訪問Zend_Amf端點,我不會收到任何錯誤,所以執行Amf處理程序時出錯。現在我正在使用螢火蟲檢查HTTP流量以查看任何錯誤。我可以使用Zend_Log來處理PHP錯誤嗎?

我的問題:我可以使用日誌實用程序(如Zend_Log)將所有PHP錯誤,警告和通知記錄到文件中,而不是在HTTP響應中發送它們(或除此之外)?

回答

2

你可以使用set_error_handler來捕捉PHP錯誤,並使用Zend_Log來記錄它們。

具有這種功能,它沒有捕捉所有的PHP錯誤唯一的問題,這是不可能趕上像語法錯誤錯誤....

的另一種方法是用register_shutdown_function功能的發揮

這樣的:

error_reporting(E_ALL); 
    ini_set('display_errors', 0); 

    function shutdown(){ 
     $isError = false; 
     if ($error = error_get_last()){ 
      switch($error['type']){ 
       case E_ERROR: 
       case E_CORE_ERROR: 
       case E_COMPILE_ERROR: 
       case E_USER_ERROR: 
        $isError = true; 
        break; 
      } 
     } 

     if ($isError){ 
      echo "Script execution halted ({$error['message']})"; 
     } else { 
      echo "Script completed"; 
     } 
    } 

    register_shutdown_function('shutdown'); 

這是值得甚至通過結合這兩種方法也不會捕捉所有的錯誤,如語法錯誤,然後指出....但是你可以看到使用普通瀏覽器那樣的錯誤。

相關問題