gpt4 book ai didi

php - 引导抛出异常时,Zend Framework显示自定义错误

转载 作者:行者123 更新时间:2023-12-03 08:31:06 25 4
gpt4 key购买 nike

我目前正在使用Zend Framework1。在 bootstrap 中,我将拥有

protected function _initLogger() {

  //this is where I create log to file

}



问题是当日志文件受到写保护或出现问题时,错误将显示在浏览器中,并带有目录位置等。

我不想隐藏该消息,但是如何自定义此错误,这样它就不会显示太多信息

我的application.ini

phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1

最佳答案

尝试这个。

告诉Zend Framework不处理异常。在您的application.ini中执行此操作

resources.frontController.throwExceptions = 1

在您的Bootstrap类中执行以下操作。

定义一个自定义方法来处理异常。
public function __handleExceptions(Exception $e){
//render a view with a simple error message for the user
//and send an email with the error to admin
}

覆盖Bootstrap类中 _bootstrap()run()Zend_Application_Bootstrap_Bootstrap方法,并捕获在引导过程或运行应用程序时引发的异常,如下所示调用异常处理程序。
    protected function _bootstrap($resource = null)
{
try {
parent::_bootstrap($resource);
} catch(Exception $e) {
$this->__handleExecptions($e);
}
}

public function run()
{
try {
parent::run();
} catch(Exception $e) {
$this->__handleExecptions($e);
}
}

这应该处理您所有的异常。要处理错误,请注册您自己的错误处理程序,如下所示。
public function _initErrorHandler(){
set_error_handler(array($this, '__hanleErrors'));
}

public function __hanleErrors($errNo, $errStr, $errFile, $errLine){
//render a view with a simple error message for the user
//and send an email with the error to admin
}

现在,当您手动处理错误和异常时,您可以向用户显示一条简单消息(通过渲染 View ),并将技术详细信息通过电子邮件发送给管理员。

希望这可以帮助。

关于php - 引导抛出异常时,Zend Framework显示自定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23437655/

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