/var/www/html_nl/wp-content/plugins/query-monitor/classes/Dispatchers.php


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
70
71
<?php declare(strict_types 1);
/**
 * Container for dispatchers.
 *
 * @package query-monitor
 */

/**
 * @implements \IteratorAggregate<string, QM_Dispatcher>
 */
class QM_Dispatchers implements IteratorAggregate {

    
/**
     * @var array<string, QM_Dispatcher>
     */
    
private $items = array();

    
/**
     * @return ArrayIterator<string, QM_Dispatcher>
     */
    
#[\ReturnTypeWillChange]
    public function 
getIterator() {
        return new 
ArrayIterator$this->items );
    }

    
/**
     * @param QM_Dispatcher $dispatcher
     * @return void
     */
    
public static function addQM_Dispatcher $dispatcher ) {
        
$dispatchers self::init();
        
$dispatchers->items$dispatcher->id ] = $dispatcher;
    }

    
/**
     * @param string $id
     * @return QM_Dispatcher|false
     */
    
public static function get$id ) {
        
$dispatchers self::init();

        return 
$dispatchers->items$id ] ?? false;
    }

    
/**
     * @return void
     */
    
public static function cease() {
        
$dispatchers self::init();

        
/** @var QM_Dispatcher $dispatcher */
        
foreach ( $dispatchers as $dispatcher ) {
            
$dispatcher->cease();
        }
    }

    
/**
     * @return self
     */
    
public static function init() {
        static 
$instance;

        if ( ! 
$instance ) {
            
$instance = new QM_Dispatchers();
        }

        return 
$instance;

    }

}