public function getSane( $shift = 1, $limitOrFilter = null )
    {

        $backtrace = $this->trace;

        while( $shift-- > 0  ) {
            array_shift( $backtrace );
        }

        if( is_numeric( $limitOrFilter ) ){
            $backtrace = array_slice( $backtrace, 0, (int) $limitOrFilter );
            $limitOrFilter = null;
        }

        $formattedTrace = array_map(
            array( $this, 'traceComponentMakeSane' ),
            $backtrace
        );

        // Apply the filter. Trace fragment is returned if the string limitOrFilter is found anywhere in a trace
        if( null !== $limitOrFilter ) {
            foreach( $formattedTrace as $key => $trace ) {
                $traceMatchesFilter = false;
                while( !$traceMatchesFilter and list(,$traceLine) = each($trace) ) {
                    if( is_string( $traceLine ) ) {
                        $traceMatchesFilter = false !== stripos( $traceLine, $limitOrFilter );
                    }
                }
                if( !$traceMatchesFilter ) {
                    unset( $formattedTrace[$key] );
                }
            }
        }

        return $formattedTrace;

    }
public function getSane( $shift = 1, $limitOrFilter = null )
    {

        $backtrace = $this->trace;

        while( $shift-- > 0  ) {
            array_shift( $backtrace );
        }

        if( is_numeric( $limitOrFilter ) ){
            $backtrace = array_slice( $backtrace, 0, (int) $limitOrFilter );
            $limitOrFilter = null;
        }

        $formattedTrace = array_map(
            array( $this, 'traceComponentMakeSane' ),
            $backtrace
        );

        // Apply the filter. Trace fragment is returned if the string limitOrFilter is found anywhere in a trace
        if( null !== $limitOrFilter ) {
            foreach( $formattedTrace as $key => $trace ) {
                $traceMatchesFilter = false;
                while( !$traceMatchesFilter and list(,$traceLine) = each($trace) ) {
                    if( is_string( $traceLine ) ) {
                        $traceMatchesFilter = false !== stripos( $traceLine, $limitOrFilter );
                    }
                }
                if( !$traceMatchesFilter ) {
                    unset( $formattedTrace[$key] );
                }
            }
        }

        return $formattedTrace;

    }
public function getSane ( $ shift = 1 , $ limitOrFilter = null ) { $ backtrace = $ this -> trace ; while ( $ shift -- > 0 ) { array_shift ( $ backtrace ) ; } if ( is_numeric ( $ limitOrFilter ) ) { $ backtrace = array_slice ( $ backtrace , 0 , ( int ) $ limitOrFilter ) ; $ limitOrFilter = null ; } $ formattedTrace = array_map ( array ( $ this , 'traceComponentMakeSane' ) , $ backtrace ) ; // Apply the filter. Trace fragment is returned if the string limitOrFilter is found anywhere in a trace if ( null !== $ limitOrFilter ) { foreach ( $ formattedTrace as $ key => $ trace ) { $ traceMatchesFilter = false ; while ( ! $ traceMatchesFilter and list ( , $ traceLine ) = each ( $ trace ) ) { if ( is_string ( $ traceLine ) ) { $ traceMatchesFilter = false !== stripos ( $ traceLine , $ limitOrFilter ) ; } } if ( ! $ traceMatchesFilter ) { unset ( $ formattedTrace [ $ key ] ) ; } } } return $ formattedTrace ; }
Shift trace, filter as required and fix the arguments object
@return array
Shift trace filter as required and fix the arguments object