src/ErrorHandler/ErrorHandler.php
public function setErrorCaller($caller = null, $offset = 0)
    {
        if ($caller === null) {
            $backtrace = \version_compare(PHP_VERSION, '5.4.0', '>=')
                ? \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, $offset + 3)
                : \debug_backtrace(false);   // don't provide object
            $i = isset($backtrace[$offset+1])
                ? $offset + 1
                : \count($backtrace) - 1;
            $caller = isset($backtrace[$i]['file'])
                ? $backtrace[$i]
                : $backtrace[$i+1]; // likely called via call_user_func.. need to go one more to get calling file & line
            $caller = array(
                'file' => $caller['file'],
                'line' => $caller['line'],
            );
        } elseif (empty($caller)) {
            // clear errorCaller
            $caller = array();
        }
        $this->data['errorCaller'] = $caller;
        return;
    }
public function setErrorCaller($caller = null, $offset = 0)
    {
        if ($caller === null) {
            $backtrace = \version_compare(PHP_VERSION, '5.4.0', '>=')
                ? \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, $offset + 3)
                : \debug_backtrace(false);   // don't provide object
            $i = isset($backtrace[$offset+1])
                ? $offset + 1
                : \count($backtrace) - 1;
            $caller = isset($backtrace[$i]['file'])
                ? $backtrace[$i]
                : $backtrace[$i+1]; // likely called via call_user_func.. need to go one more to get calling file & line
            $caller = array(
                'file' => $caller['file'],
                'line' => $caller['line'],
            );
        } elseif (empty($caller)) {
            // clear errorCaller
            $caller = array();
        }
        $this->data['errorCaller'] = $caller;
        return;
    }
public function setErrorCaller ( $ caller = null , $ offset = 0 ) { if ( $ caller === null ) { $ backtrace = \ version_compare ( PHP_VERSION , '5.4.0' , '>=' ) ? \ debug_backtrace ( DEBUG_BACKTRACE_IGNORE_ARGS , $ offset + 3 ) : \ debug_backtrace ( false ) ; // don't provide object $ i = isset ( $ backtrace [ $ offset + 1 ] ) ? $ offset + 1 : \ count ( $ backtrace ) - 1 ; $ caller = isset ( $ backtrace [ $ i ] [ 'file' ] ) ? $ backtrace [ $ i ] : $ backtrace [ $ i + 1 ] ; // likely called via call_user_func.. need to go one more to get calling file & line $ caller = array ( 'file' => $ caller [ 'file' ] , 'line' => $ caller [ 'line' ] , ) ; } elseif ( empty ( $ caller ) ) { // clear errorCaller $ caller = array ( ) ; } $ this -> data [ 'errorCaller' ] = $ caller ; return ; }
Set the calling file/line for next error
this override will apply until cleared or error occurs

Example:  some wrapper function that is called often:
Rather than reporting that an error occurred within the wrapper, you can use
setErrorCaller() to report the error originating from the file/line that called the function

@param array   $caller (default) null : determine automatically
empty value (false, "", 0, array(): clear current value
array() : manually set value
@param integer $offset (optional) if determining automatically : adjust how many frames to go back

@return void
Set the calling file / line for next error this override will apply until cleared or error occurs