gpt4 book ai didi

php - Zend Framework 在生产环境中优雅地处理异常

转载 作者:可可西里 更新时间:2023-11-01 01:10:35 26 4
gpt4 key购买 nike

我的应用程序在开发过程中愉快地处理错误,包括错误和异常。当我切换到生产环境时,应用程序只返回一个空白页面,因为配置设置为不显示错误。 ZF 中是否有一种标准方法可以使用应用程序的布局将访问者发送到格式良好的“未找到页面”,以便他们不会看到空白页面。提前致谢。

最佳答案

通常,如果您使用 CLI 创建 zend 项目,它已经能够执行您的请求。如果您转到 scripts/view/errors/error.phtml,这将是您可以用来创建您要使用的 View 的 phtml 文件。

尽管如果您没有使用 CLI 创建 zend 项目,下面会使用生成的 ErrorController

<?php

class ErrorController extends Nanaly_Controller
{

public function errorAction()
{
$errors = $this->_getParam('error_handler');

switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:

// 404 error -- controller or action not found
$this->getResponse()->setHttpResponseCode(404);
$this->view->message = 'Page not found';
break;
default:
// application error
$this->getResponse()->setHttpResponseCode(500);
$this->view->message = 'Application error';
break;
}

// Log exception, if logger available
if ($log = $this->getLog()) {
$log->crit($this->view->message, $errors->exception);
}

// conditionally display exceptions
if ($this->getInvokeArg('displayExceptions') == true) {
$this->view->exception = $errors->exception;
}

$this->view->request = $errors->request;
}

public function getLog()
{
$bootstrap = $this->getInvokeArg('bootstrap');
if (!$bootstrap->hasPluginResource('Log')) {
return false;
}
$log = $bootstrap->getResource('Log');
return $log;
}


}

注意:此 Controller 是使用 Zend Version 1.10.0 生成的

并且 View 应放置在与前面所述相同的位置。

关于php - Zend Framework 在生产环境中优雅地处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2172397/

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