public function fatalHandler()
    {
        $error = $this->getLastError();
        
        if ($this->isRegistered() && $this->isFatalError($error)) {
            if (defined('FRAMEWORK_PATH')) {
                chdir(FRAMEWORK_PATH);
            }

            if ($this->isMemoryExhaustedError($error)) {
                // We can safely change the memory limit be the reserve amount because if suhosin is relevant
                // the memory will have been decreased prior to exhaustion
                $this->changeMemoryLimit($this->reserveMemory);
            }

            $exception = $this->createException(
                $error['message'],
                $error['type'],
                $error['file'],
                $error['line']
            );

            $context = array(
                'file' => $error['file'],
                'line' => $error['line']
            );

            if ($this->reportBacktrace) {
                $context['backtrace'] = $this->getBacktraceReporter()->getBacktrace();
            }

            if ($this->exceptionInContext) {
                $context['exception'] = $exception;
            }

            $this->logger->critical($error['message'], $context);

            // Fatal errors should be reported when live as they stop the display of regular output
            if ($this->showErrors || $this->getEnvReporter()->isLive()) {
                $this->getErrorReporter()->reportError($exception);
            }
        }
    }
public function fatalHandler()
    {
        $error = $this->getLastError();
        
        if ($this->isRegistered() && $this->isFatalError($error)) {
            if (defined('FRAMEWORK_PATH')) {
                chdir(FRAMEWORK_PATH);
            }

            if ($this->isMemoryExhaustedError($error)) {
                // We can safely change the memory limit be the reserve amount because if suhosin is relevant
                // the memory will have been decreased prior to exhaustion
                $this->changeMemoryLimit($this->reserveMemory);
            }

            $exception = $this->createException(
                $error['message'],
                $error['type'],
                $error['file'],
                $error['line']
            );

            $context = array(
                'file' => $error['file'],
                'line' => $error['line']
            );

            if ($this->reportBacktrace) {
                $context['backtrace'] = $this->getBacktraceReporter()->getBacktrace();
            }

            if ($this->exceptionInContext) {
                $context['exception'] = $exception;
            }

            $this->logger->critical($error['message'], $context);

            // Fatal errors should be reported when live as they stop the display of regular output
            if ($this->showErrors || $this->getEnvReporter()->isLive()) {
                $this->getErrorReporter()->reportError($exception);
            }
        }
    }
public function fatalHandler ( ) { $ error = $ this -> getLastError ( ) ; if ( $ this -> isRegistered ( ) && $ this -> isFatalError ( $ error ) ) { if ( defined ( 'FRAMEWORK_PATH' ) ) { chdir ( FRAMEWORK_PATH ) ; } if ( $ this -> isMemoryExhaustedError ( $ error ) ) { // We can safely change the memory limit be the reserve amount because if suhosin is relevant // the memory will have been decreased prior to exhaustion $ this -> changeMemoryLimit ( $ this -> reserveMemory ) ; } $ exception = $ this -> createException ( $ error [ 'message' ] , $ error [ 'type' ] , $ error [ 'file' ] , $ error [ 'line' ] ) ; $ context = array ( 'file' => $ error [ 'file' ] , 'line' => $ error [ 'line' ] ) ; if ( $ this -> reportBacktrace ) { $ context [ 'backtrace' ] = $ this -> getBacktraceReporter ( ) -> getBacktrace ( ) ; } if ( $ this -> exceptionInContext ) { $ context [ 'exception' ] = $ exception ; } $ this -> logger -> critical ( $ error [ 'message' ] , $ context ) ; // Fatal errors should be reported when live as they stop the display of regular output if ( $ this -> showErrors || $ this -> getEnvReporter ( ) -> isLive ( ) ) { $ this -> getErrorReporter ( ) -> reportError ( $ exception ) ; } } }
Handles fatal errors
If we are registered, and there is a fatal error then log and try to gracefully handle error output
In cases where memory is exhausted increase the memory_limit to allow for logging
Handles fatal errors If we are registered and there is a fatal error then log and try to gracefully handle error output In cases where memory is exhausted increase the memory_limit to allow for logging