Configuration   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 33
dl 0
loc 49
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getDefault() 0 20 1
A getValidationRules() 0 18 1
1
<?php
2
3
/**
4
 * Platine Session
5
 *
6
 * Platine Session is the lightweight implementation of php native
7
 * session handler interface
8
 *
9
 * This content is released under the MIT License (MIT)
10
 *
11
 * Copyright (c) 2020 Platine Session
12
 *
13
 * Permission is hereby granted, free of charge, to any person obtaining a copy
14
 * of this software and associated documentation files (the "Software"), to deal
15
 * in the Software without restriction, including without limitation the rights
16
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
 * copies of the Software, and to permit persons to whom the Software is
18
 * furnished to do so, subject to the following conditions:
19
 *
20
 * The above copyright notice and this permission notice shall be included in all
21
 * copies or substantial portions of the Software.
22
 *
23
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
 * SOFTWARE.
30
 */
31
32
/**
33
 *  @file Configuration.php
34
 *
35
 *  The Session Configuration class
36
 *
37
 *  @package    Platine\Session
38
 *  @author Platine Developers Team
39
 *  @copyright  Copyright (c) 2020
40
 *  @license    http://opensource.org/licenses/MIT  MIT License
41
 *  @link   https://www.platine-php.com
42
 *  @version 1.0.0
43
 *  @filesource
44
 */
45
46
declare(strict_types=1);
47
48
namespace Platine\Session;
49
50
use Platine\Stdlib\Config\AbstractConfiguration;
51
52
/**
53
 * @class Configuration
54
 * @package Platine\Session
55
 */
56
class Configuration extends AbstractConfiguration
57
{
58
    /**
59
     * {@inheritdoc}
60
     */
61
    public function getValidationRules(): array
62
    {
63
        return [
64
            'name' => 'string',
65
            'driver' => 'string',
66
            'ttl' => 'integer',
67
            'flash_key' => 'string',
68
            'cookie' => 'array',
69
            'cookie.lifetime' => 'integer',
70
            'cookie.path' => 'string',
71
            'cookie.domain' => 'string',
72
            'cookie.secure' => 'boolean',
73
            'storages' => 'array',
74
            'storages.file' => 'array',
75
            'storages.file.path' => 'string',
76
            'storages.file.prefix' => 'string',
77
            'storages.apcu' => 'array',
78
            'storages.null' => 'array',
79
        ];
80
    }
81
82
    /**
83
     * {@inheritdoc}
84
     */
85
    public function getDefault(): array
86
    {
87
        return [
88
            'name' => 'PHPSESSID',
89
            'driver' => 'file',
90
            'ttl' => 300,
91
            'flash_key' => 'session_flash',
92
            'cookie' => [
93
                'lifetime' => 0,
94
                'path' => '/',
95
                'domain' => '',
96
                'secure' => false,
97
            ],
98
            'storages' => [
99
                'file' => [
100
                    'path' => 'session',
101
                    'prefix' => 'sess_',
102
                ],
103
                'apcu' => [],
104
                'null' => [],
105
            ]
106
        ];
107
    }
108
}
109