PHP Classes

File: Inter_Error_PHP5/0Intro_Error_CHINESE.txt

Recommend this page to a friend!
  Classes of Horse Luke   Inter Error and Exception Handler   Inter_Error_PHP5/0Intro_Error_CHINESE.txt   Download  
File: Inter_Error_PHP5/0Intro_Error_CHINESE.txt
Role: Documentation
Content type: text/plain
Description: usage and demo of Inter_Error class (Chinese)
Class: Inter Error and Exception Handler
Log or display errors and exceptions
Author: By
Last change: By default, it will not log E_STRICT
Date: 13 years ago
Size: 2,897 bytes
 

Contents

Class file image Download
$Id: 0Intro_Error.txt 174 2011-03-15 04:51:10Z horseluke@126.com $ <?php /* Inter_Error类(Error.php)文件可单独使用。PHP版本要求:>=5.0.0。 低于此php版本的可使用Inter_Error_PHP4.php文件 */ //使用方法(代码示例): date_default_timezone_set('PRC'); //设置时区,PRC内容请替换为合适的时区,详细的请自查php手册。PHP版本 >= 5.1.0的时候一定要做这步骤,否则很可能会导致记录时间不准(除非在引用前已经设置时区);版本 < 5.1.0则不需要。 require_once("Error.php"); //在适当的地方以require / require_once正确引用该文件 //然后接管PHP的错误处理机制 set_exception_handler(array('Inter_Error', 'exception_handler')); set_error_handler(array('Inter_Error', 'error_handler'), E_ALL); if(version_compare(PHP_VERSION, '5.2', '>=')){ register_shutdown_function(array('Inter_Error', 'detect_fatal_error')); } //然后可选择地使用如下方式进行设置(假如保持默认值,可以不需配置。默认值请查看Error.php里面关于静态属性$debugMode的说明): Inter_Error::$conf['debugMode'] = true; //Inter_Error::$conf['friendlyExceptionPage']='1234.htm'; //Inter_Error::$conf['logType'] = 'simple'; //Inter_Error::$conf['logDir'] = dirname(__FILE__).'/Log'; //针对国内通用程序面向过程编写、比较容易出现E_NOTICE和E_STRICT错误的实际情形(比如Discuz!、PHPWind等),可以考虑屏蔽E_NOTICE和E_STRICT错误,避免过多的错误调试记录产生。 //请将指定的常量以数组传入。可传入的常量,请自行查找:PHP手册 -> 影响PHP行为的扩展 -> Error Handling -> 预定义常量。http://docs.php.net/manual/zh/errorfunc.constants.php //默认已经屏蔽E_STRICT,但设置时,如果不使用array_merge,则必须自己再填一次E_STRICT(如下代码所示) //Inter_Error::$conf['ignoreERROR'] = array(E_NOTICE, E_STRICT); //可引起错误的代码,这时候就会调出Inter_Error来处理了 $variable1 = '1111'; function a(){ b(); } function b(){ echo $k; echo 1/0; } function c(){ //有时候你想知道函数c是什么时候和怎样被调用的。这时候只需要用trigger_error,就可以在页面的最后完整的查看整个调用过程了。 trigger_error('function c is running~', E_USER_WARNING); throw new exception('Exception Occur!'); } a(); //假如代码没有错误,但是你又想看看一些变量值。那么就可以设置好Inter_Error::$conf['variables'],然后静态调用show_variables方法,以显示变量。 //注意:一旦有php代码出错,此方法会自动调用 /* //以数组加入要检测的变量名即可。 Inter_Error::$conf['variables'] = array("_GET", "_POST", "_SESSION", "_COOKIE", "variable1", "variable2"); echo '<hr />'; Inter_Error::show_variables(); echo '<hr />'; */ c();