Completed
Push — master ( 8e644d...85b5e4 )
by Loban
03:02
created

PhpFileStorage::setValue()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 14
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 8
cts 8
cp 1
rs 9.2
c 0
b 0
f 0
cc 4
eloc 8
nc 4
nop 2
crap 4
1
<?php
2
/**
3
 * @link https://github.com/LAV45/yii2-settings
4
 * @copyright Copyright (c) 2016 LAV45
5
 * @author Alexey Loban <[email protected]>
6
 * @license http://opensource.org/licenses/BSD-3-Clause
7
 */
8
9
namespace lav45\settings\storage;
10
11
use yii\helpers\VarDumper;
12
13
class PhpFileStorage extends FileStorage
14
{
15
    /**
16
     * @var string settings file suffix. Defaults to '.php'.
17
     */
18
    public $fileSuffix = '.php';
19
20
    /**
21
     * @param string $key
22
     * @return mixed
23
     */
24 3
    public function getValue($key)
25
    {
26 3
        $file = $this->getFile($key);
27 3
        if (file_exists($file)) {
28 3
            return include $file;
29
        }
30 3
        return false;
31
    }
32
33
    /**
34
     * @param string $key
35
     * @param mixed $value
36
     * @return bool
37
     */
38 3
    public function setValue($key, $value)
39
    {
40 3
        $value = is_string($value) ? "'{$value}'" : VarDumper::export($value);
41 3
        $value = "<?php\nreturn {$value};\n";
42
43 3
        $result = parent::setValue($key, $value);
44
45 3
        if (function_exists('opcache_compile_file') && ini_get('opcache.enable')) {
46 3
            $file = $this->getFile($key);
47 3
            @opcache_compile_file($file);
48
        }
49
50 3
        return $result;
51
    }
52
}