Test Failed
Push — master ( 9c8e10...ab8c40 )
by 世昌
03:16
created

DataAccess::getStatement()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
namespace suda\application\database;
3
4
use ReflectionException;
5
use suda\application\Application;
6
use suda\orm\middleware\Middleware;
7
8
/**
9
 * 数据表抽象对象
10
 *
11
 * 用于提供对数据表的操作
12
 *
13
 */
14
class DataAccess extends \suda\orm\DataAccess
15
{
16
17
    /**
18
     * 应用引用
19
     *
20
     * @var Application
21
     */
22
    protected static $application;
23
24
    /**
25
     * 创建对数据的操作
26
     *
27
     * @param string $object
28
     * @param Middleware|null $middleware
29
     * @throws ReflectionException
30
     */
31
    public function __construct(string $object, ?Middleware $middleware = null)
32
    {
33
        parent::__construct($object, static::$application->getDataSource(), $middleware);
34
    }
35
36
    /**
37
     * 从变量创建中间件
38
     *
39
     * @param object $object
40
     * @return DataAccess
41
     * @throws ReflectionException
42
     */
43
    public static function create($object):DataAccess
44
    {
45
        $middleware = null;
46
        if ($object instanceof Middleware) {
47
            $middleware = $object;
48
        }
49
        return new self(get_class($object), $middleware);
50
    }
51
52
    /**
53
     * 创建访问工具
54
     *
55
     * @param string $object
56
     * @param Middleware|null $middleware
57
     * @return DataAccess
58
     * @throws ReflectionException
59
     */
60
    public static function new(string $object, ?Middleware $middleware = null):DataAccess
61
    {
62
        return new self($object, $middleware);
63
    }
64
65
    /**
66
     * 从应用创建表
67
     *
68
     * @param Application $application
69
     * @return void
70
     */
71
    public static function loadApplication(Application $application)
72
    {
73
        static::$application = $application;
74
    }
75
76
    /**
77
     * Get 应用引用
78
     *
79
     * @return  Application
80
     */
81
    public static function application()
82
    {
83
        return static::$application;
84
    }
85
}
86