gpt4 book ai didi

php - 寻找通用 PHP error_handler

转载 作者:行者123 更新时间:2023-12-03 07:42:15 25 4
gpt4 key购买 nike

我想覆盖默认的 PHP 错误处理程序。我确信这已经实现了无数次。

我找到了以下项目,但大多数项目似乎都很老旧。

我主要想拥有:

  • 开发模式,仅显示所有错误/通知
  • 生产模式,允许向用户显示干净的自定义布局页面
  • 记录到文本文件(我没有对网络服务器的管理员访问权限,因此无法通过 PHP 设置进行设置)
  • 发送有关严重错误的警告电子邮件
  • 登录数据库

  • 这怎么能在php中完成?

    最佳答案

    您可以使用 set_error_handler 函数来设置您的自定义错误处理程序,然后用它做任何您想做的事情。

    IMO 的最佳做法是抛出 ErrorException 发生错误时用try/catch处理( 注意: 处理我不是指静音错误)。例如:

    function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
    }
    set_error_handler("exception_error_handler");

    try {
    //Some code that may produce error
    } catch (ErrorException $e) {
    $someLogger->log($e->getMessage());
    }

    您可能拥有自己的自定义类来实现您的要求,而不是 logger。因此,如果任何现有资源满足您的需求,请使用一个,否则创建。

    注意#1:如果你想对 fatal error 做点什么(我想到了日志记录),你可以使用 register_shutdown_function

    注#2:您说您找到的类(class)/项目很小。有两件事。首先,您无法衡量使用 LOC 的代码有多好。其次,与错误没有太大关系。

    编辑:

    一般来说,在开发新项目时,从头开始重新实现所有内容是不常见的,甚至是 Not Acceptable 。您应该构建自己的库一次,然后在您的项目中使用它们。就个人而言,我使用 KLogger用于记录东西,我对此很满意。

    关于php - 寻找通用 PHP error_handler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15086116/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com