Added provider interfaces.
This commit is contained in:
1 parent
6fc8a648ad
commit
39f03e02bf
3 files changed
+48
-1
No files matched your search
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Rarst\Laps;
|
||||||
|
|
||||||
|
use Rarst\Laps\Laps;
|
||||||
|
|
||||||
|
interface Bootable_Provider_Interface {
|
||||||
|
|
||||||
|
public function boot( Laps $laps );
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Rarst\Laps\Events;
|
||||||
|
|
||||||
|
interface Events_Provider_Interface {
|
||||||
|
|
||||||
|
public function get_events();
|
||||||
|
}
|
||||||
+30
-1
@@ -5,6 +5,8 @@ namespace Rarst\Laps;
|
|||||||
use Pimple\Container;
|
use Pimple\Container;
|
||||||
use Rarst\Laps\Events\Core_Events;
|
use Rarst\Laps\Events\Core_Events;
|
||||||
use Rarst\Laps\Events\Laps_Events;
|
use Rarst\Laps\Events\Laps_Events;
|
||||||
|
use Pimple\ServiceProviderInterface;
|
||||||
|
use Rarst\Laps\Events\Events_Provider_Interface;
|
||||||
use Symfony\Component\Stopwatch\Stopwatch;
|
use Symfony\Component\Stopwatch\Stopwatch;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -15,6 +17,8 @@ class Laps extends Container {
|
|||||||
public $events = array();
|
public $events = array();
|
||||||
public $query_starts = array();
|
public $query_starts = array();
|
||||||
|
|
||||||
|
protected $providers = [];
|
||||||
|
|
||||||
public function __construct( array $values = [] ) {
|
public function __construct( array $values = [] ) {
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@@ -37,6 +41,15 @@ class Laps extends Container {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function register( ServiceProviderInterface $provider, array $values = [] ) {
|
||||||
|
|
||||||
|
$this->providers[] = $provider;
|
||||||
|
|
||||||
|
parent::register( $provider, $values );
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start Stopwatch and timing plugin load immediately, then set up core events and needed hooks.
|
* Start Stopwatch and timing plugin load immediately, then set up core events and needed hooks.
|
||||||
*/
|
*/
|
||||||
@@ -50,6 +63,13 @@ class Laps extends Container {
|
|||||||
$events = new Core_Events();
|
$events = new Core_Events();
|
||||||
$this->add_events( $events->get() );
|
$this->add_events( $events->get() );
|
||||||
|
|
||||||
|
foreach ( $this->providers as $provider ) {
|
||||||
|
|
||||||
|
if ( $provider instanceof Bootable_Provider_Interface ) {
|
||||||
|
$provider->boot( $this );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
add_action( 'pre_update_option_active_plugins', array( $this, 'pre_update_option_active_plugins' ) );
|
add_action( 'pre_update_option_active_plugins', array( $this, 'pre_update_option_active_plugins' ) );
|
||||||
add_action( 'pre_update_site_option_active_sitewide_plugins', array( $this, 'pre_update_option_active_plugins' ) );
|
add_action( 'pre_update_site_option_active_sitewide_plugins', array( $this, 'pre_update_option_active_plugins' ) );
|
||||||
add_action( 'pre_http_request', array( $this, 'pre_http_request' ), 10, 3 );
|
add_action( 'pre_http_request', array( $this, 'pre_http_request' ), 10, 3 );
|
||||||
@@ -248,7 +268,16 @@ class Laps extends Container {
|
|||||||
$stopwatch->stop( 'Toolbar' );
|
$stopwatch->stop( 'Toolbar' );
|
||||||
}
|
}
|
||||||
|
|
||||||
$events = $stopwatch->getSectionEvents( '__root__' );
|
$events = [];
|
||||||
|
|
||||||
|
foreach ( $this->providers as $provider ) {
|
||||||
|
|
||||||
|
if ( $provider instanceof Events_Provider_Interface ) {
|
||||||
|
$events[] = $provider->get_events();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$events = array_merge(...$events);
|
||||||
$start = $timestart * 1000;
|
$start = $timestart * 1000;
|
||||||
$end = microtime( true ) * 1000;
|
$end = microtime( true ) * 1000;
|
||||||
$total = $end - $start;
|
$total = $end - $start;
|
||||||
|
|||||||
Reference in new issue
Block a user