Passed
Pull Request — dev (#45)
by Stone
04:38 queued 02:16
created

ConfigModel::getAllConfig()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 19
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 11
nc 3
nop 0
dl 0
loc 19
rs 9.9
c 0
b 0
f 0
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
        $sql = 'SELECT configs.idconfigs, configs.configs_name, configs.configs_value, configs_class.class as class  FROM blogoc.configs 
22
                inner join blogoc.configs_class on configs.configs_class_idconfigsclass = configs_class.idconfigsclass
23
                order by class;';
24
        $this->query($sql);
25
        $this->execute();
26
        $configClass = $this->fetchAll();
27
        foreach ($configClass as $class) {
28
            //we remove the first 3 characters as they are used for ordering (10_global_site_configuration)
29
            $className = substr($class->class, 3);
30
31
            if (!isset($returnData[$className])) {
32
                $returnData[$className] = [];
33
            }
34
            $returnData[$className][] = $class;
35
        }
36
        return $returnData;
37
    }
38
}