ValuelistFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 29
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A createValuelistFromPostValues() 0 19 4
1
<?php
2
/**
3
 * User: Jens
4
 * Date: 8-6-2017
5
 * Time: 14:39
6
 */
7
8
namespace CloudControl\Cms\storage\factories;
9
10
11
use CloudControl\Cms\util\StringUtil;
12
use CloudControl\Cms\storage\entities\Valuelist;
13
14
class ValuelistFactory
15
{
16
    /**
17
     * Create a sitemap item from post values
18
     *
19
     * @param $postValues
20
     *
21
     * @return Valuelist
22
     * @throws \Exception
23
     */
24
    public static function createValuelistFromPostValues($postValues)
25
    {
26
        if (isset($postValues['title'])) {
27
            $valuelistObject = new \stdClass();
28
            $valuelistObject->title = $postValues['title'];
29
            $valuelistObject->slug = StringUtil::slugify($postValues['title']);
30
            $valuelistObject->pairs = new \stdClass();
31
            if (isset($postValues['keys'], $postValues['values'])) {
32
                foreach ($postValues['keys'] as $key => $value) {
33
                    $valuelistObject->pairs->$value = $postValues['values'][$key];
34
                }
35
            }
36
            $object_vars = get_object_vars($valuelistObject->pairs);
37
            ksort($object_vars);
38
            $valuelistObject->pairs = (object)$object_vars;
39
40
            return new Valuelist($valuelistObject);
41
        } else {
42
            throw new \Exception('Trying to create valuelist with invalid data.');
43
        }
44
    }
45
46
}