【问题标题】:How to properly terminate or throw from index.php如何正确终止或从 index.php 抛出
【发布时间】:2015-07-09 08:56:04
【问题描述】:

在 Zend Framework 应用程序的 index.php 中。我检查 application.ini 和 local.ini 是否存在。如果这些不存在,那么我想退出并将消息放在可以看到的地方,例如 syslog。在 PHP 和 ZF1 的上下文中,什么是好的方法?如果我抛出,那将导致退出,但我不确定它是否会记录在任何地方。

【问题讨论】:

    标签: php exception zend-framework


    【解决方案1】:

    您可以尝试将应用程序执行包装在 try {} catch {} 块中:

    try {
        $application->bootstrap()->run();
    } catch (\Exception $e) {
        error_log($e->getMessage(), $e->getCode());
        throw $e;
    }
    

    这样您将捕获所有异常,将它们记录到您的 PHP 错误日志中,并且仍然可以看到抛出的异常。

    如您所见,它使用 PHP 的 error_log 函数。

    如果您想将消息写入 syslog,只需将 error_log 行替换为

    syslog(LOG_ERR, $e->getMessage());
    

    如果您想记录整个堆栈跟踪,也可以调用$e->getTraceAsString()

    【讨论】:

    • 我不知道 PHP Zend 应用程序上下文中的初始入口点在哪里。有一行 $application->bootstrap()->run() 但这不是实际的入口点,它是在尝试加载 index.php 中的 local.ini 和 application.ini 之后调用的。
    • 将 index.php 的内容包装在 try 块中,直到 $application->bootstrap()->run() 的下方效果很好。在引导之后,ZF 日志记录可以接管。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多