WordPress.org

Make WordPress Core

Ticket #44177: wp_debug_backtrace_summary-2.diff

File wp_debug_backtrace_summary-2.diff, 2.4 KB (added by DavidAnderson, 18 months ago)

Updated patch - previous version was not based off current SVN trunk

  • wp-includes/functions.php

     
    54085408 *                             back to the source of the issue. Default 0.
    54095409 * @param bool   $pretty       Optional. Whether or not you want a comma separated string or raw
    54105410 *                             array returned. Default true.
     5411 * @param bool   $include_args Optional. Whether or not you want to include arguments in the
     5412 *                             output. Default false.
    54115413 * @return string|array Either a string containing a reversed comma separated trace or an array
    54125414 *                      of individual calls.
    54135415 */
    5414 function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pretty = true ) {
     5416function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pretty = true, $include_args = false ) {
    54155417        static $truncate_paths;
    54165418
    5417         if ( version_compare( PHP_VERSION, '5.2.5', '>=' ) ) {
    5418                 $trace = debug_backtrace( false );
    5419         } else {
    5420                 $trace = debug_backtrace();
    5421         }
     5419        $trace = debug_backtrace( false );
    54225420
    54235421        $caller      = array();
    54245422        $check_class = ! is_null( $ignore_class );
     
    54465444                        } elseif ( in_array( $call['function'], array( 'include', 'include_once', 'require', 'require_once' ) ) ) {
    54475445                                $filename = isset( $call['args'][0] ) ? $call['args'][0] : '';
    54485446                                $caller[] = $call['function'] . "('" . str_replace( $truncate_paths, '', wp_normalize_path( $filename ) ) . "')";
     5447                        } elseif ( !$include_args || empty( $call['args'] ) ) {
     5448                                        $caller[] = $call['function'];
    54495449                        } else {
    5450                                 $caller[] = $call['function'];
     5450                                $args_as_text = array();
     5451                                foreach ( $call['args'] as $arg ) {
     5452                                        if ( is_string( $arg ) ) {
     5453                                                $args_as_text[] = '"' . $arg . '"';
     5454                                        } elseif ( is_null ( $arg ) ) {
     5455                                                $args_as_text[] = 'null';
     5456                                        } elseif ( is_bool( $arg ) || is_numeric( $arg ) ) {
     5457                                                $args_as_text[] = $arg;
     5458                                        } elseif ( is_object( $arg ) ) {
     5459                                                $args_as_text[] = get_class($arg);
     5460                                        } elseif ( is_callable ( $arg ) ) {
     5461                                                $args_as_text[] = "Callable";
     5462                                        } elseif ( is_array( $arg ) ) {
     5463                                                $args_as_text[] = "Array";
     5464                                        } else {
     5465                                                $args_as_text[] = "?";
     5466                                        }
     5467                                }
     5468                                $caller[] = $call['function'] . "(" . join( ', ', $args_as_text ) . ")";
    54515469                        }
    54525470                }
    54535471        }