如何从 index.php 正确终止或抛出
How to properly terminate or throw from index.php
在 Zend Framework 应用程序的 index.php 中。我检查 application.ini 和 local.ini 是否存在。如果这些不存在,那么我想退出并将消息放在可以看到的地方,例如系统日志。在 PHP 和 ZF1 的上下文中,什么是好的方法?如果我抛出,那将导致退出,但我不确定它是否会被记录在任何地方。
您可以尝试将您的应用程序执行包装在 try {} catch {}
块中:
try {
$application->bootstrap()->run();
} catch (\Exception $e) {
error_log($e->getMessage(), $e->getCode());
throw $e;
}
这样您将捕获所有异常,将它们记录到您的 PHP 错误日志中,并且仍然会看到抛出的异常。
如您所见,它使用了 PHP 的 error_log 函数。
如果您想将消息写入系统日志,只需将 error_log
行替换为
syslog(LOG_ERR, $e->getMessage());
如果您想记录整个堆栈跟踪,您也可以调用 $e->getTraceAsString()
。
在 Zend Framework 应用程序的 index.php 中。我检查 application.ini 和 local.ini 是否存在。如果这些不存在,那么我想退出并将消息放在可以看到的地方,例如系统日志。在 PHP 和 ZF1 的上下文中,什么是好的方法?如果我抛出,那将导致退出,但我不确定它是否会被记录在任何地方。
您可以尝试将您的应用程序执行包装在 try {} catch {}
块中:
try {
$application->bootstrap()->run();
} catch (\Exception $e) {
error_log($e->getMessage(), $e->getCode());
throw $e;
}
这样您将捕获所有异常,将它们记录到您的 PHP 错误日志中,并且仍然会看到抛出的异常。
如您所见,它使用了 PHP 的 error_log 函数。
如果您想将消息写入系统日志,只需将 error_log
行替换为
syslog(LOG_ERR, $e->getMessage());
如果您想记录整个堆栈跟踪,您也可以调用 $e->getTraceAsString()
。