diff --git a/src/Provider/Record_Provider.php b/src/Provider/Record_Provider.php index 411619e..268487a 100644 --- a/src/Provider/Record_Provider.php +++ b/src/Provider/Record_Provider.php @@ -5,6 +5,7 @@ namespace Rarst\Laps\Provider; use Pimple\Container; use Pimple\ServiceProviderInterface; use Rarst\Laps\Plugin; +use Rarst\Laps\Record\Core_Load_Collector; use Rarst\Laps\Record\Hook_Record_Collector; use Rarst\Laps\Record\Http_Record_Collector; use Rarst\Laps\Record\Record_Collector_Interface; @@ -27,6 +28,7 @@ class Record_Provider implements ServiceProviderInterface, Bootable_Provider_Int $pimple['collectors'] = function ( Plugin $laps ) { return [ + 'core' => new Core_Load_Collector(), 'hook' => new Hook_Record_Collector( $laps['stopwatch'], $laps['hook.events'] ), 'http' => new Http_Record_Collector( $laps['stopwatch'] ), 'sql' => new Sql_Record_Collector(), diff --git a/src/Record/Core_Load_Collector.php b/src/Record/Core_Load_Collector.php new file mode 100644 index 0000000..12bab35 --- /dev/null +++ b/src/Record/Core_Load_Collector.php @@ -0,0 +1,35 @@ +timeload = microtime( true ); + } + + /** + * @return Record_Interface[] + */ + public function get_records() { + + global $timestart; + + $request_time = $_SERVER['REQUEST_TIME_FLOAT']; + + return [ + new Record( 'PHP Load', $request_time, $timestart - $request_time, '', 'php' ), + // TODO This includes network plugins on multisite, need conditional label if Laps is network–activated. + new Record( 'Core and MU Plugins Load', $timestart, $this->timeload - $timestart, '', 'core' ), + ]; + } +} diff --git a/src/Record/Timeline_Iterator.php b/src/Record/Timeline_Iterator.php index 1a2fee4..143ddd9 100644 --- a/src/Record/Timeline_Iterator.php +++ b/src/Record/Timeline_Iterator.php @@ -24,9 +24,7 @@ class Timeline_Iterator implements \Iterator { */ public function __construct( Recursive_Record_Iterator $iterator ) { - global $timestart; - - $this->origin = $timestart; + $this->origin = $_SERVER['REQUEST_TIME_FLOAT']; $this->iterator = $iterator; } diff --git a/tests/Record/CoreTest.php b/tests/Record/CoreTest.php new file mode 100644 index 0000000..b99f141 --- /dev/null +++ b/tests/Record/CoreTest.php @@ -0,0 +1,21 @@ +get_records(); + + $this->assertInternalType( 'array', $records ); + $this->assertCount( 2, $records ); + $this->assertInstanceOf( Record_Interface::class, $records[0] ); + } +}