2010-02-03 30 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'); 

这是值得甚至通过结合这两种方法也不会捕捉所有的错误,如语法错误,然后指出....但是你可以看到使用普通浏览器那样的错误。

相关问题