AliasFacade::setQueryBuilderInstance()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Pixie;
4
5
use Pixie\QueryBuilder\QueryBuilderHandler;
6
7
/**
8
 * This class gives the ability to access non-static methods statically
9
 *
10
 * Class AliasFacade
11
 *
12
 */
13
class AliasFacade
14
{
15
    /**
16
     * @var QueryBuilderHandler|null
17
     */
18
    protected static $queryBuilderInstance;
19
20
    /**
21
     * @param string $method
22
     * @param mixed[] $args
23
     *
24
     * @return mixed
25
     */
26
    public static function __callStatic($method, $args)
27
    {
28
        if (!static::$queryBuilderInstance) {
29
            static::$queryBuilderInstance = new QueryBuilderHandler();
30
        }
31
32
        // Call the non-static method from the class instance
33
        $callable = [static::$queryBuilderInstance, $method];
34
35
        return is_callable($callable)
36
            ? call_user_func_array($callable, $args)
37
            : null;
38
    }
39
40
    /**
41
     * @param QueryBuilderHandler $queryBuilderInstance
42
     */
43
    public static function setQueryBuilderInstance($queryBuilderInstance): void
44
    {
45
        static::$queryBuilderInstance = $queryBuilderInstance;
46
    }
47
}
48