Completed
Branch 2.x (525e63)
by Julián
09:21
created

NativeSessionTrait::hasBoolIniSetting()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
/*
4
 * sessionware (https://github.com/juliangut/sessionware).
5
 * PSR7 session management middleware.
6
 *
7
 * @license BSD-3-Clause
8
 * @link https://github.com/juliangut/sessionware
9
 * @author Julián Gutiérrez <[email protected]>
10
 */
11
12
namespace Jgut\Middleware\Sessionware\Traits;
13
14
/**
15
 * Native session management trait.
16
 */
17
trait NativeSessionTrait
18
{
19
    /**
20
     * Get string ini setting.
21
     *
22
     * @param string $setting
23
     * @param string $default
24
     *
25
     * @return string
26
     */
27
    protected function getStringIniSetting(string $setting, string $default = '') : string
28
    {
29
        $setting = $this->getIniSetting($setting);
30
31
        return !empty(trim($setting)) ? $setting : $default;
32
    }
33
34
    /**
35
     * Get integer ini setting.
36
     *
37
     * @param string $setting
38
     *
39
     * @return int
40
     */
41
    protected function getIntegerIniSetting(string $setting) : int
42
    {
43
        return (int) $this->getIniSetting($setting);
44
    }
45
46
    /**
47
     * Get boolean ini setting.
48
     *
49
     * @param string $setting
50
     *
51
     * @return bool
52
     */
53
    protected function hasBoolIniSetting(string $setting) : bool
54
    {
55
        return (bool) $this->getIniSetting($setting);
56
    }
57
58
    /**
59
     * Get raw init setting.
60
     *
61
     * @param string $setting
62
     *
63
     * @return string
64
     */
65
    protected function getIniSetting(string $setting) : string
66
    {
67
        return ini_get($this->normalizeSessionIniSetting($setting));
68
    }
69
70
    /**
71
     * Set session ini setting.
72
     *
73
     * @param string $setting
74
     * @param mixed  $value
75
     */
76
    protected function setIniSetting(string $setting, $value)
77
    {
78
        ini_set($this->normalizeSessionIniSetting($setting), $value);
79
    }
80
81
    /**
82
     * Normalize session setting name to start with 'session.'.
83
     *
84
     * @param string $setting
85
     *
86
     * @return string
87
     */
88
    private function normalizeSessionIniSetting(string $setting) : string
89
    {
90
        return strpos($setting, 'session.') !== 0 ? 'session.' . $setting : $setting;
91
    }
92
}
93