wecenter 학습 노트 - 전역 이상 처리

1998 단어
이 글은 웹 센터 학습 노트의 일부분이다

전역 예외 처리


전역 이상 콜백을 설정하여 오류를 500페이지로 지정
system/aws_app.inc.php#init
set_exception_handler(array('AWS_APP', 'exception_handle'));

...

public static function exception_handle($exception)
{
    $exception_message = "Application error
------
Message: " . $exception->getMessage() . "
File: " . $exception->getFile() . "
Line: " . $exception->getLine() . "
------
Build: " . G_VERSION . " " . G_VERSION_BUILD . "
PHP Version: " . PHP_VERSION . "
URI: " . $_SERVER['REQUEST_URI'] . "
User Agent: " . $_SERVER['HTTP_USER_AGENT'] . "
Accept Language: " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "
IP Address: " . fetch_ip() . "
------
" . $exception->getTraceAsString(); show_error($exception_message, $exception->getMessage()); }

system/functions.inc.php
function show_error($exception_message, $error_message = '')
{
    @ob_end_clean();

    if (get_setting('report_diagnostics') == 'Y' AND class_exists('AWS_APP', false))
    {
        AWS_APP::mail()->send('[email protected]', '[' . G_VERSION . '][' . G_VERSION_BUILD . '][' . base_url() . ']' . $error_message, nl2br($exception_message), get_setting('site_name'), 'WeCenter');
    }

    if (isset($_SERVER['SERVER_PROTOCOL']) AND strstr($_SERVER['SERVER_PROTOCOL'], '/1.0') !== false)
    {
        header("HTTP/1.0 500 Internal Server Error");
    }
    else
    {
        header("HTTP/1.1 500 Internal Server Error");
    }

    echo _show_error($exception_message);
    exit;
}

처리되지 않은 이상이 발생하면 wecenter에 메일을 보냅니다. 이 동작이 필요하지 않으면 닫을 수 있습니다report_diagnostics 설정 항목
국제화 및 다국어←o→BBCode

좋은 웹페이지 즐겨찾기