PropertyBagTrait::setResourceSettingsValues()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
c 0
b 0
f 0
rs 9.4285
nc 1
cc 1
eloc 3
nop 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