Fixed event timeline in clockwork

This commit is contained in:
Matias Griese
2020-12-01 10:33:37 +02:00
parent 2b17767b53
commit 8f9b2d22c1
3 changed files with 186 additions and 1014 deletions

1178
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -763,11 +763,15 @@ class Debugger
* @param string $name
* @param object $event
* @param EventDispatcherInterface $dispatcher
* @param float|null $time
* @return $this
*/
public function addEvent(string $name, $event, EventDispatcherInterface $dispatcher)
public function addEvent(string $name, $event, EventDispatcherInterface $dispatcher, float $time = null)
{
if ($this->enabled && $this->clockwork) {
$time = $time ?? microtime(true);
$duration = (microtime(true) - $time) * 1000;
$data = null;
if ($event && method_exists($event, '__debugInfo')) {
$data = $event;
@@ -778,7 +782,7 @@ class Debugger
$listeners[] = $this->resolveCallable($listener);
}
$this->clockwork->addEvent($name, $data, microtime(true), ['listeners' => $listeners]);
$this->clockwork->addEvent($name, $data, $time, ['listeners' => $listeners, 'duration' => $duration]);
}
return $this;

View File

@@ -463,11 +463,14 @@ class Grav extends Container
$events = $this['events'];
$eventName = get_class($event);
$timestamp = microtime(true);
$event = $events->dispatch($event);
/** @var Debugger $debugger */
$debugger = $this['debugger'];
$debugger->addEvent($eventName, $event, $events);
$debugger->addEvent($eventName, $event, $events, $timestamp);
return $events->dispatch($event);
return $event;
}
/**
@@ -485,11 +488,12 @@ class Grav extends Container
$event = new Event();
}
$timestamp = microtime(true);
$events->dispatch($event, $eventName);
/** @var Debugger $debugger */
$debugger = $this['debugger'];
$debugger->addEvent($eventName, $event, $events);
$events->dispatch($event, $eventName);
$debugger->addEvent($eventName, $event, $events, $timestamp);
return $event;
}