Completed
Branch 2.x (b1c655)
by Julián
07:53
created

SessionIniSettingsTrait   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 0
dl 0
loc 76
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getStringIniSetting() 0 6 2
A getIntegerIniSetting() 0 4 1
A hasBoolIniSetting() 0 4 1
A getIniSetting() 0 4 1
A setIniSetting() 0 4 1
A normalizeSessionIniSetting() 0 4 2
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;
13
14
/**
15
 * Session management trait.
16
 */
17
trait SessionIniSettingsTrait
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($setting, $default = '')
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($setting)
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($setting)
54
    {
55
        return (bool) $this->getIniSetting($setting);
56
    }
57
58
    /**
59
     * Get raw init setting.
60
     *
61
     * @param string $setting
62
     *
63
     * @return mixed
0 ignored issues
show
Documentation introduced by
Consider making the return type a bit more specific; maybe use string.

This check looks for the generic type array as a return type and suggests a more specific type. This type is inferred from the actual code.

Loading history...
64
     */
65
    protected function getIniSetting($setting)
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($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($setting)
89
    {
90
        return strpos($setting, 'session.') !== 0 ? 'session.' . $setting : $setting;
91
    }
92
}
93