Passed
Push — Accessing-and-setting-the-site... ( 46dc3a...28c402 )
by Stone
01:51
created

ConfigModel   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getAllConfig() 0 23 3
A updateConfig() 0 2 1
1
<?php
2
3
namespace App\Models;
4
5
use Core\Model;
6
7
/**
8
 * Class ConfigModel
9
 * @package App\Models
10
 */
11
class ConfigModel extends Model
12
{
13
    /**
14
     * Returns all the configs orderd with their class names
15
     * @return array
16
     * @throws \Exception
17
     */
18
    public function getAllConfig(): array
19
    {
20
        $returnData = [];
21
        //getting our tables
22
        $configsTbl = $this->getTablePrefix('configs');
23
        $configsClassTbl = $this->getTablePrefix('configs_class');
24
        $sql = "SELECT idconfigs, configs_name, configs_value, class FROM  $configsTbl 
25
                inner join $configsClassTbl on $configsTbl.configs_class_idconfigsclass = $configsClassTbl.idconfigsclass
26
                order by class;";
27
28
        $this->query($sql);
29
        $this->execute();
30
        $configClass = $this->fetchAll();
31
        foreach ($configClass as $class) {
32
            //we remove the first 3 characters as they are used for ordering (10_global_site_configuration)
33
            $className = substr($class->class, 3);
34
35
            if (!isset($returnData[$className])) {
36
                $returnData[$className] = [];
37
            }
38
            $returnData[$className][] = $class;
39
        }
40
        return $returnData;
41
    }
42
43
    public function updateConfig(int $id, string $param){
44
        echo $id.' - '.$param.'<br>';
45
        //TODO need to push to sql
46
    }
47
}