src/Airbrake/EventHandler.php
public function onShutdown()
    {
        // If the instance was unset, then we shouldn't run.
        if (self::$instance == null) {
            return;
        }

        // This will help prevent multiple calls to this, incase the shutdown handler was declared
        // multiple times. This only should occur in unit tests, when the handlers are created
        // and removed repeatedly. As we cannot remove shutdown handlers, this prevents us from
        // calling it 1000 times at the end.
        self::$instance = null;

        // Get the last error if there was one, if not, let's get out of here.
        if (!$error = error_get_last()) {
            return;
        }

        // Don't notify on warning if not configured to.
        if (!$this->shouldNotifyError($error['type'], $error['message'], $error['file'], $error['line'])) {
            return;
        }

        // Build a fake backtrace, so we at least can show where we came from.
        $backtrace = array(
            array(
                'file' => $error['file'],
                'line' => $error['line'],
                'function' => '',
                'args' => array(),
            )
        );

        $this->airbrakeClient->notifyOnError('[Improper Shutdown] '.$error['message'], $backtrace);
    }
public function onShutdown()
    {
        // If the instance was unset, then we shouldn't run.
        if (self::$instance == null) {
            return;
        }

        // This will help prevent multiple calls to this, incase the shutdown handler was declared
        // multiple times. This only should occur in unit tests, when the handlers are created
        // and removed repeatedly. As we cannot remove shutdown handlers, this prevents us from
        // calling it 1000 times at the end.
        self::$instance = null;

        // Get the last error if there was one, if not, let's get out of here.
        if (!$error = error_get_last()) {
            return;
        }

        // Don't notify on warning if not configured to.
        if (!$this->shouldNotifyError($error['type'], $error['message'], $error['file'], $error['line'])) {
            return;
        }

        // Build a fake backtrace, so we at least can show where we came from.
        $backtrace = array(
            array(
                'file' => $error['file'],
                'line' => $error['line'],
                'function' => '',
                'args' => array(),
            )
        );

        $this->airbrakeClient->notifyOnError('[Improper Shutdown] '.$error['message'], $backtrace);
    }
public function onShutdown ( ) { // If the instance was unset, then we shouldn't run. if ( self :: $ instance == null ) { return ; } // This will help prevent multiple calls to this, incase the shutdown handler was declared // multiple times. This only should occur in unit tests, when the handlers are created // and removed repeatedly. As we cannot remove shutdown handlers, this prevents us from // calling it 1000 times at the end. self :: $ instance = null ; // Get the last error if there was one, if not, let's get out of here. if ( ! $ error = error_get_last ( ) ) { return ; } // Don't notify on warning if not configured to. if ( ! $ this -> shouldNotifyError ( $ error [ 'type' ] , $ error [ 'message' ] , $ error [ 'file' ] , $ error [ 'line' ] ) ) { return ; } // Build a fake backtrace, so we at least can show where we came from. $ backtrace = array ( array ( 'file' => $ error [ 'file' ] , 'line' => $ error [ 'line' ] , 'function' => '' , 'args' => array ( ) , ) ) ; $ this -> airbrakeClient -> notifyOnError ( '[Improper Shutdown] ' . $ error [ 'message' ] , $ backtrace ) ; }
Handles the PHP shutdown event.

This event exists almost soley to provide a means to catch and log errors that might have been
otherwise lost when PHP decided to die unexpectedly.
Handles the PHP shutdown event .