Add offset parameter to System::callstack

- Enable its use in centralized methods without polluting the stack
This commit is contained in:
Hypolite Petovan 2020-07-27 00:20:30 -04:00
parent 639e2b3892
commit 19141b1bcf

View File

@ -33,16 +33,17 @@ 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];