让PHP错误自生自灭

让PHP错误自生自灭,php,error-handling,Php,Error Handling,我正在开发一个非常简单但(希望)可靠的框架,它正好适合我的需要。没有比真正需要的东西更多的东西了。 我知道你们中的一些人可能会发现我是最后一个“轮子的重新发明者”,但我相信这个项目,我认为其他框架有时是无缘无故的复杂;我们都知道,随着框架复杂性的增加,bug和错误呈指数级增长 我谈到了处理错误的问题:PHP错误、框架错误(PHP错误组)等等。 有很多方法可以做到这一点,但我通常更喜欢简单的方法 我应该管理框架初始化过程中可能出现的所有PHP错误(包括异常)还是set\u error\u hand

我正在开发一个非常简单但(希望)可靠的框架,它正好适合我的需要。没有比真正需要的东西更多的东西了。 我知道你们中的一些人可能会发现我是最后一个“轮子的重新发明者”,但我相信这个项目,我认为其他框架有时是无缘无故的复杂;我们都知道,随着框架复杂性的增加,bug和错误呈指数级增长

我谈到了处理错误的问题:PHP错误、框架错误(PHP错误组)等等。 有很多方法可以做到这一点,但我通常更喜欢简单的方法

我应该管理框架初始化过程中可能出现的所有PHP错误(包括异常)还是
set\u error\u handler()
,或者我应该构建一个简单的错误处理程序来显示(如果我们处于开发人员模式)或记录(如果我们不处于开发人员模式)错误

例如:

include('file.php'); // required files for the application
我是否应该检查它并返回“好看”的错误消息,例如“由于缺少文件,框架无法运行”。还是应该让PHP错误触发它自己的错误?
您将如何管理这种类型或错误?

泄漏php错误在安全方面可能非常危险,因为它可能会暴露应用程序和服务器的内部。通常,切换到生产环境并使用自定义错误处理程序是一种好的做法。对于发展来说,这并不重要

我将在
display\u errors
上引用php文档:

这是一项支持您的开发的功能,决不能用于生产系统(例如连接到internet的系统)


听着,你只是把事情搞混了

实际上,你必须通知两个人

  • 程序员
  • 用户
  • 理解了这一点,你会发现选择什么是没有问题的:两者都有

    对于程序员来说,默认的PHP处理程序就足够了。通过
    display\u errors
    log\u errors
    设置,PHP将完全按照您的要求执行:
    显示(如果我们处于开发人员模式)或记录(如果我们不处于开发人员模式)错误

    对于用户(和搜索引擎)来说,“好看”的503错误页面是必须的。 当然,没有像“文件丢失”这样的细节。只是一个道歉页面

    唯一的问题是如何触发。
    使用自定义错误处理程序的一个很好的理由。

    我想说,“bug和错误”主要来自重新发明轮子……记住,您使用的是PHP,因此可以创建格式良好的HTML+CSS错误日志:)