GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( f4c35f...6cea97 )
by やかみ
02:26
created

Redis::open()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 2
dl 0
loc 5
ccs 0
cts 3
cp 0
crap 2
rs 9.4285
c 1
b 0
f 0
1
<?php
2
/**
3
 * Kotori.php
4
 *
5
 * A Tiny Model-View-Controller PHP Framework
6
 *
7
 * This content is released under the Apache 2 License
8
 *
9
 * Copyright (c) 2015-2017 Kotori Technology. All rights reserved.
10
 *
11
 * Licensed under the Apache License, Version 2.0 (the "License");
12
 * you may not use this file except in compliance with the License.
13
 * You may obtain a copy of the License at
14
 *
15
 *     http://www.apache.org/licenses/LICENSE-2.0
16
 *
17
 * Unless required by applicable law or agreed to in writing, software
18
 * distributed under the License is distributed on an "AS IS" BASIS,
19
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
 * See the License for the specific language governing permissions and
21
 * limitations under the License.
22
 */
23
24
/**
25
 * Memcached Session Class
26
 *
27
 * @package     Kotori
28
 * @subpackage  Session
29
 * @author      Kokororin
30
 * @link        https://kotori.love
31
 */
32
namespace Kotori\Http\Session;
33
34
use Kotori\Core\Cache\Redis as RedisDriver;
35
use SessionHandlerInterface;
36
37
class Redis implements SessionHandlerInterface
38
{
39
    /**
40
     * Default configuration
41
     *
42
     * @var array
43
     */
44
    protected $config = [
45
        'host' => '127.0.0.1',
46
        'port' => 6379,
47
        'password' => null,
48
        'database' => 0,
49
        'expire' => 3600,
50
        'timeout' => 0,
51
        'prefix' => '',
52
    ];
53
54
    /**
55
     * Class constructor
56
     *
57
     * Setup Redis
58
     *
59
     * @param  array $config
60
     * @return void
0 ignored issues
show
Comprehensibility Best Practice introduced by
Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value.

Adding a @return annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.

Please refer to the PHP core documentation on constructors.

Loading history...
61
     */
62
    public function __construct($config = [])
63
    {
64
        $this->config = array_merge($this->config, $config);
65
    }
66
67
    /**
68
     * Open session
69
     *
70
     * @param  string    $savePath
71
     * @param  mixed     $sessName
72
     * @return boolean
73
     */
74
    // @codingStandardsIgnoreStart
75
    public function open($savePath, $sessName)
76
    {
77
        $this->redisDriver = new RedisDriver($this->config);
0 ignored issues
show
Bug introduced by
The property redisDriver does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
78
        return true;
79
    }
80
    // @codingStandardsIgnoreEnd
81
82
    /**
83
     * Close session
84
     *
85
     * @return boolean
86
     */
87
    public function close()
88
    {
89
        $this->gc(ini_get('session.gc_maxlifetime'));
0 ignored issues
show
Unused Code introduced by
The call to the method Kotori\Http\Session\Redis::gc() seems un-needed as the method has no side-effects.

PHP Analyzer performs a side-effects analysis of your code. A side-effect is basically anything that might be visible after the scope of the method is left.

Let’s take a look at an example:

class User
{
    private $email;

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
    }
}

If we look at the getEmail() method, we can see that it has no side-effect. Whether you call this method or not, no future calls to other methods are affected by this. As such code as the following is useless:

$user = new User();
$user->getEmail(); // This line could safely be removed as it has no effect.

On the hand, if we look at the setEmail(), this method _has_ side-effects. In the following case, we could not remove the method call:

$user = new User();
$user->setEmail('email@domain'); // This line has a side-effect (it changes an
                                 // instance variable).
Loading history...
90
        $this->redisDriver = null;
91
        return true;
92
    }
93
94
    /**
95
     * Read session
96
     *
97
     * @param  string $sessID
98
     * @return string
99
     */
100
    public function read($sessID)
101
    {
102
        return (string) $this->redisDriver->get($this->config['prefix'] . $sessID);
103
    }
104
105
    /**
106
     * Write session
107
     *
108
     * @param string $sessID
109
     * @param String $sessData
110
     * @return boolean
111
     */
112
    public function write($sessID, $sessData)
113
    {
114
        return $this->redisDriver->set($this->config['prefix'] . $sessID, $sessData, $this->config['expire']);
115
    }
116
117
    /**
118
     * Delete session
119
     *
120
     * @param  string $sessID
121
     * @return boolean
122
     */
123
    public function destroy($sessID)
124
    {
125
        return $this->redisDriver->delete($this->config['prefix'] . $sessID);
126
    }
127
128
    /**
129
     * do garbage collection
130
     *
131
     * @param  string $sessMaxLifeTime
132
     * @return boolean
133
     */
134
    public function gc($sessMaxLifeTime)
135
    {
136
        return true;
137
    }
138
}
139