QueryMonitor.php
1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
* QueryMonitor
*
* @package ContentControl
*/
namespace ContentControl\Controllers\Compatibility;
use ContentControl\Base\Controller;
use ContentControl\QueryMonitor\Output;
use ContentControl\QueryMonitor\Collector;
use QM_Collectors;
use function ContentControl\is_frontend;
/**
* QueryMonitor
*/
class QueryMonitor extends Controller {
/**
* Initialize the class
*
* @return void
*/
public function init() {
$this->register_collector();
add_filter( 'qm/outputter/html', [ $this, 'register_output_html' ], 10 );
}
/**
* Check if controller is enabled.
*
* @return bool
*/
public function controller_enabled() {
return class_exists( 'QueryMonitor' );
}
/**
* Register collector.
*
* @return void
*/
public function register_collector() {
QM_Collectors::add( new Collector() );
}
/**
* Add Query Monitor outputter.
*
* @param array<string,\QM_Output_Html> $output Outputters.
* @return array<string,\QM_Output_Html> Outputters.
*/
public function register_output_html( $output ) {
if ( ! is_frontend() ) {
return $output;
}
$collector = QM_Collectors::get( 'content-control' );
if ( $collector ) {
$output['content-control'] = new Output( $collector );
}
return $output;
}
}