public function getExceptionArray($exception)
    {
        $_message = 'Uknonwn exception object, not instance of \Exception.';
        $_file = 'unknown';
        $_line = 0;
        $_trace = [];
        $_previousException = [];
        
        if (is_object($exception)) {
            $prev = $exception->getPrevious();
            
            if (!empty($prev)) {
                $_previousException = [
                    'message' => $prev->getMessage(),
                    'file' => $prev->getFile(),
                    'line' => $prev->getLine(),
                    'trace' => $this->buildTrace($prev),
                ];
            }
            
            $_trace = $this->buildTrace($exception);
            $_message = $exception->getMessage();
            $_file = $exception->getFile();
            $_line = $exception->getLine();
        } elseif (is_string($exception)) {
            $_message = 'exception string: ' . $exception;
        } elseif (is_array($exception)) {
            $_message = isset($exception['message']) ? $exception['message'] : 'exception array dump: ' . print_r($exception, true);
            $_file = isset($exception['file']) ? $exception['file'] : __FILE__;
            $_line = isset($exception['line']) ? $exception['line'] : __LINE__;
        }

        return [
            'message' => $_message,
            'file' => $_file,
            'line' => $_line,
            'requestUri' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null,
            'serverName' => isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null,
            'date' => date('d.m.Y H:i'),
            'trace' => $_trace,
            'previousException' => $_previousException,
            'ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null,
            'get' => isset($_GET) ? ArrayHelper::coverSensitiveValues($_GET, $this->sensitiveKeys) : [],
            'post' => isset($_POST) ? ArrayHelper::coverSensitiveValues($_POST, $this->sensitiveKeys) : [],
            'bodyParams' => Yii::$app instanceof Application ? ArrayHelper::coverSensitiveValues(Yii::$app->request->bodyParams) : [],
            'session' => isset($_SESSION) ? ArrayHelper::coverSensitiveValues($_SESSION, $this->sensitiveKeys) : [],
            'server' => isset($_SERVER) ? ArrayHelper::coverSensitiveValues($_SERVER, $this->sensitiveKeys) : [],
            'profiling' => Yii::getLogger()->profiling,
            'logger' => Yii::getLogger()->messages,
        ];
    }
public function getExceptionArray($exception)
    {
        $_message = 'Uknonwn exception object, not instance of \Exception.';
        $_file = 'unknown';
        $_line = 0;
        $_trace = [];
        $_previousException = [];
        
        if (is_object($exception)) {
            $prev = $exception->getPrevious();
            
            if (!empty($prev)) {
                $_previousException = [
                    'message' => $prev->getMessage(),
                    'file' => $prev->getFile(),
                    'line' => $prev->getLine(),
                    'trace' => $this->buildTrace($prev),
                ];
            }
            
            $_trace = $this->buildTrace($exception);
            $_message = $exception->getMessage();
            $_file = $exception->getFile();
            $_line = $exception->getLine();
        } elseif (is_string($exception)) {
            $_message = 'exception string: ' . $exception;
        } elseif (is_array($exception)) {
            $_message = isset($exception['message']) ? $exception['message'] : 'exception array dump: ' . print_r($exception, true);
            $_file = isset($exception['file']) ? $exception['file'] : __FILE__;
            $_line = isset($exception['line']) ? $exception['line'] : __LINE__;
        }

        return [
            'message' => $_message,
            'file' => $_file,
            'line' => $_line,
            'requestUri' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null,
            'serverName' => isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null,
            'date' => date('d.m.Y H:i'),
            'trace' => $_trace,
            'previousException' => $_previousException,
            'ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null,
            'get' => isset($_GET) ? ArrayHelper::coverSensitiveValues($_GET, $this->sensitiveKeys) : [],
            'post' => isset($_POST) ? ArrayHelper::coverSensitiveValues($_POST, $this->sensitiveKeys) : [],
            'bodyParams' => Yii::$app instanceof Application ? ArrayHelper::coverSensitiveValues(Yii::$app->request->bodyParams) : [],
            'session' => isset($_SESSION) ? ArrayHelper::coverSensitiveValues($_SESSION, $this->sensitiveKeys) : [],
            'server' => isset($_SERVER) ? ArrayHelper::coverSensitiveValues($_SERVER, $this->sensitiveKeys) : [],
            'profiling' => Yii::getLogger()->profiling,
            'logger' => Yii::getLogger()->messages,
        ];
    }
public function getExceptionArray ( $ exception ) { $ _message = 'Uknonwn exception object, not instance of \Exception.' ; $ _file = 'unknown' ; $ _line = 0 ; $ _trace = [ ] ; $ _previousException = [ ] ; if ( is_object ( $ exception ) ) { $ prev = $ exception -> getPrevious ( ) ; if ( ! empty ( $ prev ) ) { $ _previousException = [ 'message' => $ prev -> getMessage ( ) , 'file' => $ prev -> getFile ( ) , 'line' => $ prev -> getLine ( ) , 'trace' => $ this -> buildTrace ( $ prev ) , ] ; } $ _trace = $ this -> buildTrace ( $ exception ) ; $ _message = $ exception -> getMessage ( ) ; $ _file = $ exception -> getFile ( ) ; $ _line = $ exception -> getLine ( ) ; } elseif ( is_string ( $ exception ) ) { $ _message = 'exception string: ' . $ exception ; } elseif ( is_array ( $ exception ) ) { $ _message = isset ( $ exception [ 'message' ] ) ? $ exception [ 'message' ] : 'exception array dump: ' . print_r ( $ exception , true ) ; $ _file = isset ( $ exception [ 'file' ] ) ? $ exception [ 'file' ] : __FILE__ ; $ _line = isset ( $ exception [ 'line' ] ) ? $ exception [ 'line' ] : __LINE__ ; } return [ 'message' => $ _message , 'file' => $ _file , 'line' => $ _line , 'requestUri' => isset ( $ _SERVER [ 'REQUEST_URI' ] ) ? $ _SERVER [ 'REQUEST_URI' ] : null , 'serverName' => isset ( $ _SERVER [ 'SERVER_NAME' ] ) ? $ _SERVER [ 'SERVER_NAME' ] : null , 'date' => date ( 'd.m.Y H:i' ) , 'trace' => $ _trace , 'previousException' => $ _previousException , 'ip' => isset ( $ _SERVER [ 'REMOTE_ADDR' ] ) ? $ _SERVER [ 'REMOTE_ADDR' ] : null , 'get' => isset ( $ _GET ) ? ArrayHelper :: coverSensitiveValues ( $ _GET , $ this -> sensitiveKeys ) : [ ] , 'post' => isset ( $ _POST ) ? ArrayHelper :: coverSensitiveValues ( $ _POST , $ this -> sensitiveKeys ) : [ ] , 'bodyParams' => Yii :: $ app instanceof Application ? ArrayHelper :: coverSensitiveValues ( Yii :: $ app -> request -> bodyParams ) : [ ] , 'session' => isset ( $ _SESSION ) ? ArrayHelper :: coverSensitiveValues ( $ _SESSION , $ this -> sensitiveKeys ) : [ ] , 'server' => isset ( $ _SERVER ) ? ArrayHelper :: coverSensitiveValues ( $ _SERVER , $ this -> sensitiveKeys ) : [ ] , 'profiling' => Yii :: getLogger ( ) -> profiling , 'logger' => Yii :: getLogger ( ) -> messages , ] ; }
Get an readable array to transfer from an exception

@param mixed $exception Exception object
@return array An array with transformed exception data
Get an readable array to transfer from an exception