X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FSystem.php;h=e84fcb5737733f649f13bf3ed4c2a3e34c51e4fe;hb=0d1fa70e2ecb372d158871285e0cda5f6d77194a;hp=37e6d8a1cbe4da41d70be869c0b82c2fffeb3248;hpb=5a6887fb2e4f3a78207547d1fe801403645c9a80;p=friendica.git diff --git a/src/Core/System.php b/src/Core/System.php index 37e6d8a1cb..e84fcb5737 100644 --- a/src/Core/System.php +++ b/src/Core/System.php @@ -33,22 +33,23 @@ class System /** * Returns a string with a callstack. Can be used for logging. * - * @param integer $depth optional, default 4 + * @param integer $depth How many calls to include in the stacks after filtering + * @param int $offset How many calls to shave off the top of the stack, for example if + * this is called from a centralized method that isn't relevant to the callstack * @return string */ - public static function callstack($depth = 4) + public static function callstack(int $depth = 4, int $offset = 0) { $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - // We remove the first two items from the list since they contain data that we don't need. - array_shift($trace); - array_shift($trace); + // We remove at least the first two items from the list since they contain data that we don't need. + $trace = array_slice($trace, 2 + $offset); $callstack = []; $previous = ['class' => '', 'function' => '', 'database' => false]; // The ignore list contains all functions that are only wrapper functions - $ignore = ['fetchUrl', 'call_user_func_array']; + $ignore = ['call_user_func_array']; while ($func = array_pop($trace)) { if (!empty($func['class'])) { @@ -140,7 +141,7 @@ class System * @param string $content_type Type of the input (Default: 'application/json'). * @param integer $options JSON options */ - public static function jsonExit($x, $content_type = 'application/json', int $options = null) { + public static function jsonExit($x, $content_type = 'application/json', int $options = 0) { header("Content-type: $content_type"); echo json_encode($x, $options); exit();