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

Memcached::destroy()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 1
dl 0
loc 4
ccs 0
cts 2
cp 0
crap 2
rs 10
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\Memcached as MemcachedDriver;
35
use SessionHandlerInterface;
36
37
class Memcached implements SessionHandlerInterface
38
{
39
    /**
40
     * Default configuration
41
     *
42
     * @var array
43
     */
44
    protected $config = [
45
        'host' => '127.0.0.1',
46
        'port' => 11211,
47
        'expire' => 3600,
48
        'prefix' => '',
49
    ];
50
51
    /**
52
     * Class constructor
53
     *
54
     * Setup Memcache(d)
55
     *
56
     * @param  array $config
57
     * @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...
58
     */
59
    public function __construct($config = [])
60
    {
61
        $this->config = array_merge($this->config, $config);
62
    }
63
64
    /**
65
     * Open session
66
     *
67
     * @param  string    $savePath
68
     * @param  mixed     $sessName
69
     * @return boolean
70
     */
71
    // @codingStandardsIgnoreStart
72
    public function open($savePath, $sessName)
73
    {
74
        $this->memcachedDriver = new MemcachedDriver($this->config);
0 ignored issues
show
Bug introduced by
The property memcachedDriver 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...
75
        return true;
76
    }
77
    // @codingStandardsIgnoreEnd
78
79
    /**
80
     * Close session
81
     *
82
     * @return boolean
83
     */
84
    public function close()
85
    {
86
        $this->gc(ini_get('session.gc_maxlifetime'));
0 ignored issues
show
Unused Code introduced by
The call to the method Kotori\Http\Session\Memcached::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...
87
        $this->memcachedDriver = null;
88
        return true;
89
    }
90
91
    /**
92
     * Read session
93
     *
94
     * @param  string $sessID
95
     * @return string
96
     */
97
    public function read($sessID)
98
    {
99
        return (string) $this->memcachedDriver->get($this->config['prefix'] . $sessID);
100
    }
101
102
    /**
103
     * Write session
104
     *
105
     * @param string $sessID
106
     * @param String $sessData
107
     * @return boolean
108
     */
109
    public function write($sessID, $sessData)
110
    {
111
        return $this->memcachedDriver->set($this->config['prefix'] . $sessID, $sessData, $this->config['expire']);
112
    }
113
114
    /**
115
     * Delete session
116
     *
117
     * @param  string $sessID
118
     * @return boolean
119
     */
120
    public function destroy($sessID)
121
    {
122
        return $this->memcachedDriver->delete($this->config['prefix'] . $sessID);
123
    }
124
125
    /**
126
     * do garbage collection
127
     *
128
     * @param  string $sessMaxLifeTime
129
     * @return boolean
130
     */
131
    public function gc($sessMaxLifeTime)
132
    {
133
        return true;
134
    }
135
}
136