QM_Backtrace::filter_trace PHP Method

filter_trace() public method

public filter_trace ( array $trace )
$trace array
        public function filter_trace(array $trace)
        {
            if (!self::$filtered and function_exists('did_action') and did_action('plugins_loaded')) {
                # Only run apply_filters on these once
                self::$ignore_class = apply_filters('qm/trace/ignore_class', self::$ignore_class);
                self::$ignore_method = apply_filters('qm/trace/ignore_method', self::$ignore_method);
                self::$ignore_func = apply_filters('qm/trace/ignore_func', self::$ignore_func);
                self::$show_args = apply_filters('qm/trace/show_args', self::$show_args);
                self::$filtered = true;
            }
            $return = $trace;
            if (isset($trace['class'])) {
                if (isset(self::$ignore_class[$trace['class']])) {
                    $return = null;
                } else {
                    if (isset(self::$ignore_method[$trace['class']][$trace['function']])) {
                        $return = null;
                    } else {
                        if (0 === strpos($trace['class'], 'QM_')) {
                            $return = null;
                        } else {
                            $return['id'] = $trace['class'] . $trace['type'] . $trace['function'] . '()';
                            $return['display'] = $trace['class'] . $trace['type'] . $trace['function'] . '()';
                        }
                    }
                }
            } else {
                if (isset(self::$ignore_func[$trace['function']])) {
                    $return = null;
                } else {
                    if (isset(self::$show_args[$trace['function']])) {
                        $show = self::$show_args[$trace['function']];
                        if ('dir' === $show) {
                            if (isset($trace['args'][0])) {
                                $arg = QM_Util::standard_dir($trace['args'][0], '~/');
                                $return['id'] = $trace['function'] . '()';
                                $return['display'] = $trace['function'] . "('{$arg}')";
                            }
                        } else {
                            $args = array();
                            for ($i = 0; $i < $show; $i++) {
                                if (isset($trace['args'][$i])) {
                                    $args[] = '\'' . $trace['args'][$i] . '\'';
                                }
                            }
                            $return['id'] = $trace['function'] . '()';
                            $return['display'] = $trace['function'] . '(' . implode(',', $args) . ')';
                        }
                    } else {
                        $return['id'] = $trace['function'] . '()';
                        $return['display'] = $trace['function'] . '()';
                    }
                }
            }
            if ($return) {
                $return['calling_file'] = $this->calling_file;
                $return['calling_line'] = $this->calling_line;
            }
            if (isset($trace['line'])) {
                $this->calling_line = $trace['line'];
            }
            if (isset($trace['file'])) {
                $this->calling_file = $trace['file'];
            }
            return $return;
        }