Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 28 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 1 |
EventQueue | |
0.00% |
0 / 28 |
|
0.00% |
0 / 4 |
30 | |
0.00% |
0 / 1 |
getInstance | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
6 | |||
__construct | |
0.00% |
0 / 23 |
|
0.00% |
0 / 1 |
2 | |||
container | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
queue | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace NewfoldLabs\WP\Module\Data\EventQueue; |
4 | |
5 | use NewfoldLabs\WP\Module\Data\EventQueue\Queues\BatchQueue; |
6 | use NewfoldLabs\WP\ModuleLoader\Container; |
7 | use WP_Forge\QueryBuilder\Query; |
8 | |
9 | class EventQueue { |
10 | |
11 | /** |
12 | * Dependency injection container |
13 | * |
14 | * @var Container $container |
15 | */ |
16 | protected $container; |
17 | |
18 | /** |
19 | * @var EventQueue |
20 | */ |
21 | private static $instance; |
22 | |
23 | /** |
24 | * Get the singleton instance |
25 | * |
26 | * @return EventQueue |
27 | */ |
28 | public static function getInstance() { |
29 | if ( ! self::$instance ) { |
30 | self::$instance = new self(); |
31 | } |
32 | |
33 | return self::$instance; |
34 | } |
35 | |
36 | /** |
37 | * Constructor |
38 | * |
39 | * @param Container $container |
40 | */ |
41 | private function __construct() { |
42 | |
43 | global $wpdb; |
44 | |
45 | $container = new Container( |
46 | array( |
47 | 'table' => "{$wpdb->prefix}nfd_data_event_queue", |
48 | ) |
49 | ); |
50 | |
51 | $container->set( |
52 | 'query', |
53 | $container->factory( |
54 | function () { |
55 | return new Query(); |
56 | } |
57 | ) |
58 | ); |
59 | |
60 | $container->set( |
61 | 'queue', |
62 | $container->factory( |
63 | function () use ( $container ) { |
64 | return new Queues\BatchQueue( $container ); |
65 | } |
66 | ) |
67 | ); |
68 | |
69 | $this->container = $container; |
70 | } |
71 | |
72 | /** |
73 | * Get the dependency injection container |
74 | * |
75 | * @return Container |
76 | */ |
77 | public function container() { |
78 | return $this->container; |
79 | } |
80 | |
81 | /** |
82 | * Get a queue instance |
83 | * |
84 | * @return BatchQueue |
85 | */ |
86 | public function queue() { |
87 | return $this->container->get( 'queue' ); |
88 | } |
89 | } |