'MyClass', 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myFunction', 'args' => [ 'number' => 1, 'mylongstring' => 'more than 20 characters 1234567890', ] ]; $this->assertEquals( 'MyClass->myFunction(1, more than 20 charact...)', Backtrace::full_func_name($func, true, 20) ); } public function testIgnoredFunctionArgs() { $bt = [ [ 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myIgnoredGlobalFunction', 'args' => ['password' => 'secred',] ], [ 'class' => 'MyClass', 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myIgnoredClassFunction', 'args' => ['password' => 'secred',] ], [ 'class' => 'MyClass', 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myFunction', 'args' => ['myarg' => 'myval'] ] ]; Backtrace::config()->update( 'ignore_function_args', [ ['MyClass', 'myIgnoredClassFunction'], 'myIgnoredGlobalFunction' ] ); $filtered = Backtrace::filter_backtrace($bt); $this->assertEquals('', $filtered[0]['args']['password'], 'Filters global functions'); $this->assertEquals('', $filtered[1]['args']['password'], 'Filters class functions'); $this->assertEquals('myval', $filtered[2]['args']['myarg'], 'Doesnt filter other functions'); } public function testFilteredWildCard() { $bt = [ [ 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myIgnoredGlobalFunction', 'args' => ['password' => 'secred',] ], [ 'class' => 'MyClass', 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myIgnoredClassFunction', 'args' => ['password' => 'secred',] ], [ 'class' => 'MyClass', 'type' => '->', 'file' => 'MyFile.php', 'line' => 99, 'function' => 'myFunction', 'args' => ['myarg' => 'myval'] ] ]; Backtrace::config()->update( 'ignore_function_args', [ ['*', 'myIgnoredClassFunction'], ] ); $filtered = Backtrace::filter_backtrace($bt); $this->assertEquals('secred', $filtered[0]['args']['password']); $this->assertEquals('', $filtered[1]['args']['password']); $this->assertEquals('myval', $filtered[2]['args']['myarg']); } }