private static bool
$hasClassStub;
public function __construct(callable|array
$listener, ?string
$name, Stopwatch
$stopwatch, EventDispatcherInterface
$dispatcher = null, int
$priority = null
) { $this->listener =
$listener;
$this->optimizedListener =
$listener instanceof \Closure ?
$listener :
(\
is_callable($listener) ?
$listener(...
) : null
);
$this->stopwatch =
$stopwatch;
$this->dispatcher =
$dispatcher;
$this->priority =
$priority;
if (\
is_array($listener)) { [$this->name,
$this->callableRef
] =
$this->
parseListener($listener);
$this->pretty =
$this->name.'::'.
$listener[1
];
$this->callableRef .= '::'.
$listener[1
];
} elseif ($listener instanceof \Closure
) { $r =
new \
ReflectionFunction($listener);
if (str_contains($r->name, '{closure}'
)) { $this->pretty =
$this->name = 'closure';
} elseif ($class = \PHP_VERSION_ID >= 80111 ?
$r->
getClosureCalledClass() :
$r->
getClosureScopeClass()) { $this->name =
$class->name;
$this->pretty =
$this->name.'::'.
$r->name;
} else { $this->pretty =
$this->name =
$r->name;
}