diff --git a/src/Events/Hook_Events_Provider.php b/src/Events/Hook_Events_Provider.php index c38cfc8..c8bd851 100644 --- a/src/Events/Hook_Events_Provider.php +++ b/src/Events/Hook_Events_Provider.php @@ -7,6 +7,7 @@ use Pimple\ServiceProviderInterface; use Rarst\Laps\Bootable_Provider_Interface; use Rarst\Laps\Laps; use Symfony\Component\Stopwatch\Stopwatch; +use Symfony\Component\Stopwatch\StopwatchEvent; class Hook_Events_Provider implements ServiceProviderInterface, Bootable_Provider_Interface, Events_Provider_Interface { @@ -100,6 +101,23 @@ class Hook_Events_Provider implements ServiceProviderInterface, Bootable_Provide public function get_events() { - return $this->stopwatch->getSectionEvents( '__root__' ); + $events = $this->stopwatch->getSectionEvents( '__root__' ); + + return array_map( [ $this, 'transform' ], array_keys( $events ), $events ); + } + + protected function transform( $name, StopwatchEvent $event ) { + + $duration = $event->getDuration(); + $memory = $event->getMemory() / 1024 / 1024; + + return [ + 'name' => $name, + 'description' => "{$name} - {$duration} ms - {$memory} MB", + 'origin' => $event->getOrigin(), + 'duration' => $duration, + 'memory' => $memory, + 'category' => $event->getCategory(), + ]; } } \ No newline at end of file diff --git a/src/Events/Http_Events_Provider.php b/src/Events/Http_Events_Provider.php index be5c7f2..c727509 100644 --- a/src/Events/Http_Events_Provider.php +++ b/src/Events/Http_Events_Provider.php @@ -7,6 +7,7 @@ use Pimple\ServiceProviderInterface; use Rarst\Laps\Bootable_Provider_Interface; use Rarst\Laps\Laps; use Symfony\Component\Stopwatch\Stopwatch; +use Symfony\Component\Stopwatch\StopwatchEvent; class Http_Events_Provider implements ServiceProviderInterface, Bootable_Provider_Interface, Events_Provider_Interface { @@ -61,6 +62,23 @@ class Http_Events_Provider implements ServiceProviderInterface, Bootable_Provide public function get_events() { - return $this->stopwatch->getSectionEvents( '__root__' ); + $events = $this->stopwatch->getSectionEvents( '__root__' ); + + return array_map( [ $this, 'transform' ], array_keys( $events ), $events ); + } + + protected function transform( $name, StopwatchEvent $event ) { + + $duration = $event->getDuration(); + $memory = $event->getMemory() / 1024 / 1024; + + return [ + 'name' => $name, + 'description' => $name, + 'origin' => $event->getOrigin(), + 'duration' => $duration, + 'memory' => $memory, + 'category' => $event->getCategory(), + ]; } } \ No newline at end of file diff --git a/src/Laps.php b/src/Laps.php index c8c3d09..472b419 100644 --- a/src/Laps.php +++ b/src/Laps.php @@ -176,19 +176,20 @@ class Laps extends Container { $event_data = array(); $http_data = array(); - foreach ( $events as $name => $event ) { + foreach ( $events as $event ) { - $offset = round( ( $event->getOrigin() - $start ) / $total * 100, 2 ); - $duration = $event->getDuration(); + $name = $event['name']; + $offset = round( ( $event['origin'] - $start ) / $total * 100, 2 ); + $duration = $event['duration']; $width = round( $duration / $total * 100, 2 ); - $category = $event->getCategory(); + $category = $event['category']; if ( 'http' === $category ) { $http_data[] = compact( 'name', 'offset', 'duration', 'width', 'category' ); continue; } - $memory = $event->getMemory() / 1024 / 1024; + $memory = $event['memory']; $event_data[] = compact( 'name', 'offset', 'duration', 'width', 'category', 'memory' ); }