Completed
Push — master ( e30c80...53d921 )
by Loban
40:21
created

ConfigController::actionDelete()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace console\controllers;
4
5
use yii\console\Controller;
6
use yii\helpers\Console;
7
8
/**
9
 * Class ConfigController
10
 * @package console\controllers
11
 *
12
 * ~$ php yii config/set db_name site-db
13
 *
14
 * ~$ php yii config
15
 *     db_name: site-db
16
 *
17
 * ~$ php yii config/get db_name
18
 * site-db
19
 *
20
 * ~$ php yii config/delete db_name
21
 */
22
class ConfigController extends Controller
23
{
24
    /**
25
     * Display all keys
26
     */
27
    public function actionIndex()
28
    {
29
        foreach ($this->get() as $key => $value) {
30
            $this->stdout("  {$key}", Console::FG_YELLOW);
31
            if (is_string($value)) {
32
                $this->stdout(": {$value}", Console::FG_GREEN);
33
            }
34
            $this->stdout("\n");
35
        }
36
        $this->stdout("\n");
37
    }
38
39
    /**
40
     * Show key value. Params: {key}
41
     * @param string $key
42
     */
43
    public function actionGet($key)
44
    {
45
        $data = $this->get();
46
        if (isset($data[$key])) {
47
            echo $data[$key] . "\n";
48
        }
49
    }
50
51
    /**
52
     * Set value by key. Params: {key} {value}
53
     * @param string $key
54
     * @param $value
55
     */
56
    public function actionSet($key, $value)
57
    {
58
        $data = $this->get();
59
        $data[$key] = $value;
60
        $this->set($data);
61
    }
62
63
    /**
64
     * Delete key. Params: {key}
65
     * @param string $key
66
     */
67
    public function actionDelete($key)
68
    {
69
        $data = $this->get();
70
        unset($data[$key]);
71
        $this->set($data);
72
    }
73
74
    private function get()
75
    {
76
        return settings()->get(APP_CONFIG, []);
77
    }
78
79
    private function set($values)
80
    {
81
        settings()->set(APP_CONFIG, $values);
82
    }
83
}