Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 28
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
EventQueue
0.00% covered (danger)
0.00%
0 / 28
0.00% covered (danger)
0.00%
0 / 4
30
0.00% covered (danger)
0.00%
0 / 1
 getInstance
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 __construct
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 1
2
 container
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 queue
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace NewfoldLabs\WP\Module\Data\EventQueue;
4
5use NewfoldLabs\WP\Module\Data\EventQueue\Queues\BatchQueue;
6use NewfoldLabs\WP\ModuleLoader\Container;
7use WP_Forge\QueryBuilder\Query;
8
9class 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}