Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于在活动页面上查找PHP错误的建议_Php_Error Handling_Live - Fatal编程技术网

关于在活动页面上查找PHP错误的建议

关于在活动页面上查找PHP错误的建议,php,error-handling,live,Php,Error Handling,Live,背景 在实时环境中,您必须不时地解决问题。发布代码后,一些错误或小故障可能会在您的页面上出现。 用户通常不会报告错误,因此在您自己发现之前,页面会被破坏 问题 在PHP中,除了PHP日志之外,还有没有一种推荐的方法来检测出现PHP错误时被破坏的内容 例如,如果页面上出现错误,您是否建议放置一个向您发送电子邮件的代码 谢谢你我认为你应该开始最大限度地使用异常并创建自定义设置错误处理程序使用此功能,你可以开始对错误和不确定的通知格式进行分类 范例 GreenException保存到MongoDB日志

背景
在实时环境中,您必须不时地解决问题。发布代码后,一些错误或小故障可能会在您的页面上出现。
用户通常不会报告错误,因此在您自己发现之前,页面会被破坏

问题
在PHP中,除了PHP日志之外,还有没有一种推荐的方法来检测出现PHP错误时被破坏的内容

例如,如果页面上出现错误,您是否建议放置一个向您发送电子邮件的代码


谢谢你

我认为你应该开始最大限度地使用
异常
并创建自定义
设置错误处理程序
使用此功能,你可以开始对错误和不确定的通知格式进行分类

范例

GreenException
保存到MongoDB日志

BlueException
Send to Review

WhiteException
给我发封邮件

未知异常
给我发短信

您还应该尝试在开发过程中启用以下设置,并且永远不要抑制任何错误

  error_reporting(E_ALL);
  ini_set('display_errors','On');
以这样一种方式开发应用程序:所有内容都经过验证和验证

示例(文件上载)或抛出异常

我可以上传吗

文件已更新

这是一个有效的文件吗

目标文件夹是否存在

它是可写的吗

复制文件

已成功复制文件

等等

这样可以最大限度地减少生产错误


最后总是。。。进行单元测试

一,。php应该记录这一点2。应该有一个监控日志的软件。所以把这两个分开。而且,不是,从php直接发送电子邮件通常不是一个好主意。你知道有什么实用的解决方案可以应用到服务器上,或者以某种方式扫描日志并报告任何错误或类似情况吗?这将是很酷的:)最有力的赌注,尽管追溯实施没有多大用处,但是针对某种测试框架进行开发。然后,您可以在准备部署/发布时运行测试,并且只有在测试全部通过时才能继续。当然,这也不是解决bug的灵丹妙药。@fuzzydunload有时,特别是当您有许多用户时,可能没有时间测试您编写的代码,例如,如果您有很多事情要做,并且是项目的唯一开发人员。同样,即使你自己做了一些测试,也有一些时候不管你做什么都会失败:(@Herr Kaleun:log monitoring的问题与编程无关,这是操作系统特有的系统管理问题如果您使用
mail
捕获错误并使用
SMTP
如果有错误,您将捕获错误并将其保存到消息队列…如果有错误…最后尝试保存到fI如果你只能记录所有事情并处理日志,为什么要让事情变得这么复杂呢?这是一种通用的方式,而不是十几个细节。顺便说一句,
邮件发送代码
不仅仅限于一个
邮件
功能-你可能会在上面的某个地方出错。那又如何?为什么要硬编码通知方式(电子邮件、短信等)代替处理,而不是将其延迟到日志处理阶段(当您可以自由地做任何事情时,无论何时)?他们发明升级的原因…一些错误比另一个更重要..通用存储不起作用..第二..一些错误可能有备份操作..这是我说的如果
POP3
不起作用使用
SMTP
。。。