Completed
Push — develop ( d77dc3...4e0099 )
by Evan
02:28
created

QueryBuilder   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 3
Bugs 0 Features 0
Metric Value
c 3
b 0
f 0
dl 0
loc 64
rs 10
wmc 5
lcom 1
cbo 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 2
A make() 0 4 1
A query() 0 9 1
A set() 0 6 1
1
<?php
2
3
namespace Silk\User;
4
5
use WP_User_Query;
6
use Silk\Query\Builder as BaseBuilder;
7
8
class QueryBuilder extends BaseBuilder
9
{
10
    /**
11
     * The query instance
12
     * @var WP_User_Query
13
     */
14
    protected $query;
15
16
    /**
17
     * QueryBuilder Constructor.
18
     *
19
     * @param WP_User_Query $query
20
     */
21
    public function __construct(WP_User_Query $query = null)
22
    {
23
        if (! $query) {
24
            $query = new WP_User_Query();
25
        }
26
27
        $this->query = $query;
28
    }
29
30
    /**
31
     * Create a new instance.
32
     *
33
     * @param WP_User_Query $query
34
     *
35
     * @return static
36
     */
37
    public static function make(WP_User_Query $query = null)
38
    {
39
        return new static($query);
40
    }
41
42
    /**
43
     * Execute the query and return the raw results.
44
     *
45
     * @return array
46
     */
47
    protected function query()
48
    {
49
        $this->set('fields', 'all');
50
51
        $this->query->prepare_query();
52
        $this->query->query();
53
54
        return $this->query->get_results();
55
    }
56
57
    /**
58
     * Set an arbitrary query parameter.
59
     *
60
     * @param $parameter
61
     * @param $value
62
     *
63
     * @return $this
64
     */
65
    public function set($parameter, $value)
66
    {
67
        $this->query->set($parameter, $value);
68
69
        return $this;
70
    }
71
}
72