首页 / PHP / 如何在PHP中设计错误报告
如何在PHP中设计错误报告
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在PHP中设计错误报告,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2411字,纯文字阅读大概需要4分钟。
内容图文
![如何在PHP中设计错误报告](/upload/InfoBanner/zyjiaocheng/670/b53ceb2663a144df9c33712f81673d61.jpg)
我应该如何用PHP编写错误报告模块?
说,我想用PHP编写一个函数:’bool isDuplicateEmail($email)’.
在该函数中,我想检查$email是否已存在于数据库中.
如果存在,它将返回“ true”.否则为“假”.
现在,查询执行也可能失败,那时候我想向用户报告“内部错误”.
该函数不应因典型的mysql错误而死:die(mysql_error().我的Web应用程序具有两个界面:浏览器和电子邮件(您可以通过发送电子邮件来执行某些操作).
在这两种情况下,都应报告具有良好美感的错误.
我真的必须为此使用异常处理吗?
谁能指出我一些优秀的PHP项目,在那里我可以学习如何设计健壮的PHP网络应用程序?
解决方法:
在我的PHP项目中,我尝试了几种不同的方法.我得出了以下解决方案,该解决方案似乎对我来说效果很好:
首先,我编写的任何主要PHP应用程序都具有某种中央单例,用于管理应用程序级数据和行为. “应用程序”对象.我之所以在此提及,是因为我使用此对象来收集来自其他模块的生成的反馈.呈现模块可以查询应用对象以获取应认为应该显示给用户的反馈.
在较低级别上,每个类都是从某个包含错误管理方法的基类派生的.例如,“ AddError(code,string,global)”,“ GetErrors()”和“ ClearErrors”. “ AddError”方法有两件事:将错误的本地副本存储在该对象的特定于实例的数组中,并(可选)将此错误通知应用程序对象(“ global”是一个布尔值),然后将该错误存储为将来用于渲染.
所以现在这是它在实践中的工作方式:
请注意,“对象”定义了以下方法:为方便起见,AddError ClearErrors GetErrorCodes GetErrorsAsStrings GetErrorCount或HasError
// $GLOBALS['app'] = new Application();
class MyObject extends Object
{
/**
* @return bool Returns false if failed
*/
public function DoThing()
{
$this->ClearErrors();
if ([something succeeded])
{
return true;
}
else
{
$this->AddError(ERR_OP_FAILED,"Thing could not be done");
return false;
}
}
}
$ob = new MyObject();
if ($ob->DoThing())
{
echo 'Success.';
}
else
{
// Right now, i may not really care *why* it didn't work (the user
// may want to know about the problem, though (see below).
$ob->TrySomethingElse();
}
// ...LATER ON IN THE RENDERING MODULE
echo implode('<br/>',$GLOBALS['app']->GetErrorsAsStrings());
我喜欢这个的原因是:
>我讨厌例外,因为我个人认为例外会使代码更加混乱,因此需要
>有时您只需要知道某个函数成功或失败,而不是到底出了什么问题
>很多时候,您不需要特定的错误代码,但是需要特定的错误字符串,并且不想为每个可能的错误情况都创建错误代码.有时,您实际上只是想使用“ opfailed”代码,但为了用户的缘故,在字符串本身中进行了一些详细说明.这样可以带来灵活性
>有两个错误收集位置(调用算法使用的本地级别和渲染模块使用的全局级别(用于告知用户有关它们的信息)对我来说确实有效,可以为每个功能区域提供完成任务所需的确切功能.
内容总结
以上是互联网集市为您收集整理的如何在PHP中设计错误报告全部内容,希望文章能够帮你解决如何在PHP中设计错误报告所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。