AbstractTool   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 1
dl 0
loc 45
ccs 0
cts 23
cp 0
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 14 3
A getBase() 0 4 1
A getDi() 0 4 1
A getDbc() 0 4 1
A getAccessId() 0 5 1
1
<?php
2
/**
3
 * HiAPI Yii2 base project for building API
4
 *
5
 * @link      https://github.com/hiqdev/hiapi
6
 * @package   hiapi
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2017, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hiapi\components;
12
13
use hiqdev\yii\compat\yii;
14
15
abstract class AbstractTool extends \yii\base\Component
16
{
17
    protected $base;
18
19
    /**
20
     * @var array tool configuration
21
     */
22
    protected $data;
23
24
    public function __construct($base, $data)
25
    {
26
        $this->base = $base;
27
        $this->data = $data;
28
29
        /// XXX WTF? $base->di becomes null after passing as argument
30
        /// TODO fix!
31
        if ($this->base->di === null) {
32
            $this->base->di = yii::getContainer();
33
        }
34
        if ($this->base->dbc === null) {
35
            $this->base->dbc = $this->base->di->get('dbc');
36
        }
37
    }
38
39
    public function getBase()
40
    {
41
        return $this->base;
42
    }
43
44
    public function getDi()
45
    {
46
        return $this->base->di;
47
    }
48
49
    public function getDbc()
50
    {
51
        return $this->base->dbc;
52
    }
53
54
    public function getAccessId(): int
55
    {
56
        $id = $this->data['id'] ?? null;
57
        return (int)$id;
58
    }
59
}
60