ThinkPHP提供了错误调试功能,用于输出错误文件中的信息,并查看哪个函数调用了该函数,以及从框架启动时记录的内容,这对于调试尤其有用。 因此,研究了其底层并给出了实现。 php
//--框架核心- -开始
//框架内置错误处理
functionerrdealwith($errno、$errstr、$errfile、$errline () ) ) ) ) ) 652 )
{
thrownewException ('错误消息:'.$errstr.'错误文件:'.$errfile.'错误行:'.$errline.'错误代码: '
}
set_error_Handler(errdealwith );
//加载框架
特里
{
init (;
}
catch (执行$ e ) )。
{
showdebug($e;
//showdebug($e-getmessage ) );
}
//框架调用堆栈方法
functionshowDebug($ex )
{
//错误输出
var_dump($ex-getmessage ) );
//调用堆栈输出
var_dump (调用顺序);
$ traces=array _ reverse ($ ex-get trace ) );
foreach($tracesas$item )
{
//消除框架所具有的异常函数
if($item['function']!='errDealWith ' )
{
var_dump($item['function'] );
var_dump($item;
}
}
}
//框架初始化方法
功能init ()
{
加载索引控制器
索引(;
}
//--框架核心----退出
//--------华丽的分割线
//控制器
函数索引(
{
//加载新闻的逻辑
getList (;
}
//新闻页面
功能获取列表(
{
返回$列表;
}
上面的代码中有$list未定义的错误。 首先需要自定义错误处理函数和类。 这里只是为了演示而处理了错误。 实际上,完整的错误处理类非常庞大,可以通过抛出异常后获取getTrace来实现,也可以开发和采用自己的框架。