Added backtrace formatter class.

This commit is contained in:
Andrey Savchenko committed 2018-03-09 22:07:06 +02:00
1 parent 79ed1ffcfd
commit 30db67c055
1 file changed
+55
+55
View File
@@ -0,0 +1,55 @@
<?php
namespace Rarst\Laps\Formatter;
/**
* Formatter to adjust WP backtrace output to be more short and concise.
*/
class Backtrace_Formatter {
/** @var array $skip String matches to omit. */
protected static $skip = [
'wp-blog-header.php',
'wp-load.php',
'wp-config.php',
'admin.php',
'locate_template',
'load_template',
'_wp_get_current_user',
'WP_Hook',
];
/**
* @param array|string $backtrace Backtrace input as produced by WP.
*
* @return array
*/
public function format( $backtrace ) {
if ( is_string( $backtrace ) ) {
$backtrace = explode( ', ', $backtrace );
}
// TODO shorten includes.
$backtrace = array_filter( $backtrace, [ $this, 'filter' ] );
return $backtrace;
}
/**
* @param string $item Backtrace item.
*
* @return bool Keep or drop.
*/
protected function filter( $item ) {
foreach ( self::$skip as $match ) {
if ( false !== strpos( $item, $match ) ) {
return false;
}
}
return true;
}
}