PropertyBagTrait   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 46
c 0
b 0
f 0
wmc 3
lcom 0
cbo 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
settings() 0 1 ?
A getResourceSettingsValues() 0 12 2
A setResourceSettingsValues() 0 6 1
1
<?php
2
3
namespace Giftd\Editor\Traits;
4
5
trait PropertyBagTrait
6
{
7
    /**
8
     * If passed is string, get settings class for the resource or return value
9
     * for given key. If passed is array, set the key value pair.
10
     *
11
     * @param string|array $passed = null
12
     *
13
     * @return \LaravelPropertyBag\Settings\Settings|mixed
14
     */
15
    abstract public function settings($passed = null);
16
17
    /**
18
     * Returns values by settings names.
19
     *
20
     * @param array $settings
21
     *
22
     * @return array
23
     */
24
    public function getResourceSettingsValues(array $settings)
25
    {
26
        $values = [];
27
        $pbSettings = $this->settings();
28
        $saved = $pbSettings->allSaved();
29
30
        foreach ($settings as $setting) {
31
            $values[$setting] = $saved->get($setting, $pbSettings->getDefault($setting));
32
        }
33
34
        return $values;
35
    }
36
37
    /**
38
     * Sets settings values.
39
     *
40
     * @param array $settings
41
     *
42
     * @return static
43
     */
44
    public function setResourceSettingsValues(array $settings)
45
    {
46
        $this->settings($settings);
47
48
        return $this;
49
    }
50
}
51