mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
ENH Refactor Backtrace to be a bit more readable.
This commit is contained in:
parent
139fa07bcb
commit
7f7feb8604
@ -13,11 +13,12 @@ class Backtrace
|
|||||||
use Configurable;
|
use Configurable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array Replaces all arguments with a '<filtered>' string,
|
* Replaces all arguments with a '<filtered>' string,
|
||||||
* mostly for security reasons. Use string values for global functions,
|
* mostly for security reasons. Use string values for global functions,
|
||||||
* and array notation for class methods.
|
* and array notation for class methods.
|
||||||
* PHP's debug_backtrace() doesn't allow to inspect the argument names,
|
* PHP's debug_backtrace() doesn't allow to inspect the argument names,
|
||||||
* so all arguments of the provided functions will be filtered out.
|
* so all arguments of the provided functions will be filtered out.
|
||||||
|
* @var array
|
||||||
*/
|
*/
|
||||||
private static $ignore_function_args = [
|
private static $ignore_function_args = [
|
||||||
'mysql_connect',
|
'mysql_connect',
|
||||||
@ -107,22 +108,22 @@ class Backtrace
|
|||||||
// Filter out arguments
|
// Filter out arguments
|
||||||
foreach ($bt as $i => $frame) {
|
foreach ($bt as $i => $frame) {
|
||||||
$match = false;
|
$match = false;
|
||||||
if (!empty($bt[$i]['class'])) {
|
if (!empty($frame['class'])) {
|
||||||
foreach ($ignoredArgs as $fnSpec) {
|
foreach ($ignoredArgs as $fnSpec) {
|
||||||
if (is_array($fnSpec) &&
|
if (is_array($fnSpec) &&
|
||||||
('*' == $fnSpec[0] || $bt[$i]['class'] == $fnSpec[0]) &&
|
('*' == $fnSpec[0] || $frame['class'] == $fnSpec[0]) &&
|
||||||
$bt[$i]['function'] == $fnSpec[1]
|
$frame['function'] == $fnSpec[1]
|
||||||
) {
|
) {
|
||||||
$match = true;
|
$match = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (in_array($bt[$i]['function'], $ignoredArgs ?? [])) {
|
if (in_array($frame['function'], $ignoredArgs ?? [])) {
|
||||||
$match = true;
|
$match = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($match) {
|
if ($match) {
|
||||||
foreach ($bt[$i]['args'] as $j => $arg) {
|
foreach ($frame['args'] as $j => $arg) {
|
||||||
$bt[$i]['args'][$j] = '<filtered>';
|
$bt[$i]['args'][$j] = '<filtered>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user