Explorar o código

Multiple functions to skip

Add an array for holding the functions to skip, preventing the functions from ever being used for introspection
Liam Le Brun %!s(int64=10) %!d(string=hai) anos
pai
achega
e021bbd4b2
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  1. 7 2
      src/Monolog/Processor/IntrospectionProcessor.php

+ 7 - 2
src/Monolog/Processor/IntrospectionProcessor.php

@@ -29,6 +29,11 @@ class IntrospectionProcessor
     private $level;
 
     private $skipClassesPartials;
+    
+	private $skipFunctions = array(
+		'call_user_func',
+		'call_user_func_array',
+	);
 
     public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array('Monolog\\'))
     {
@@ -56,7 +61,7 @@ class IntrospectionProcessor
 
         $i = 0;
 
-        while (isset($trace[$i]['class']) || $trace[$i]['function'] == 'call_user_func') {
+        while (isset($trace[$i]['class']) || in_array($trace[$i]['function'], $this->skipFunctions)) {
 			if(isset($trace[$i]['class'])) {
 				foreach ($this->skipClassesPartials as $part) {
 					if (strpos($trace[$i]['class'], $part) !== false) {
@@ -64,7 +69,7 @@ class IntrospectionProcessor
 						continue 2;
 					}
 				}
-			} elseif($trace[$i]['function'] == 'call_user_func') {
+			} elseif(in_array($trace[$i]['function'], $this->skipFunctions)) {
 				$i++;
 			}