Cookie::get()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 7
rs 9.4285
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
3
/*
4
 * The MIT License
5
 *
6
 * Copyright 2016 Alejandro Peña Florentín ([email protected]).
7
 *
8
 * Permission is hereby granted, free of charge, to any person obtaining a copy
9
 * of this software and associated documentation files (the "Software"), to deal
10
 * in the Software without restriction, including without limitation the rights
11
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
 * copies of the Software, and to permit persons to whom the Software is
13
 * furnished to do so, subject to the following conditions:
14
 *
15
 * The above copyright notice and this permission notice shall be included in
16
 * all copies or substantial portions of the Software.
17
 *
18
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
 * THE SOFTWARE.
25
 */
26
27
namespace Tight\Modules\Cookie;
28
29
/**
30
 * Description of Cookie
31
 *
32
 * @author Alejandro Peña Florentín ([email protected])
33
 */
34
class Cookie extends \Tight\Modules\AbstractModule
35
{
36
37
    public $cookieOptions = [];
38
39
    public function __construct(CookieConfig $config = null) {
40
        parent::__construct("CookieModule");
41
        if (null == $config) {
42
            $config = new CookieConfig;
43
        }
44
        $this->setConfig($config);
45
    }
46
47
    public function set($name, $value, $options = []) {
0 ignored issues
show
Unused Code introduced by
The parameter $options is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
48
        return setcookie($name, $value, time() + $this->getConfig()->expire, $this->getConfig()->path, $this->getConfig()->domain, $this->getConfig()->secure, $this->getConfig()->httponly);
49
    }
50
51
    public function remove($name) {
52
        return setcookie($name, "", -3600, $this->getConfig()->path, $this->getConfig()->domain, $this->getConfig()->secure, $this->getConfig()->httponly);
53
    }
54
55
    public function get($name) {
0 ignored issues
show
Coding Style introduced by
get uses the super-global variable $_COOKIE which is generally not recommended.

Instead of super-globals, we recommend to explicitly inject the dependencies of your class. This makes your code less dependent on global state and it becomes generally more testable:

// Bad
class Router
{
    public function generate($path)
    {
        return $_SERVER['HOST'].$path;
    }
}

// Better
class Router
{
    private $host;

    public function __construct($host)
    {
        $this->host = $host;
    }

    public function generate($path)
    {
        return $this->host.$path;
    }
}

class Controller
{
    public function myAction(Request $request)
    {
        // Instead of
        $page = isset($_GET['page']) ? intval($_GET['page']) : 1;

        // Better (assuming you use the Symfony2 request)
        $page = $request->query->get('page', 1);
    }
}
Loading history...
56
        if (isset($_COOKIE[$name])) {
57
            return $_COOKIE[$name];
58
        } else {
59
            return null;
60
        }
61
    }
62
63
    public function clear() {
0 ignored issues
show
Coding Style introduced by
clear uses the super-global variable $_COOKIE which is generally not recommended.

Instead of super-globals, we recommend to explicitly inject the dependencies of your class. This makes your code less dependent on global state and it becomes generally more testable:

// Bad
class Router
{
    public function generate($path)
    {
        return $_SERVER['HOST'].$path;
    }
}

// Better
class Router
{
    private $host;

    public function __construct($host)
    {
        $this->host = $host;
    }

    public function generate($path)
    {
        return $this->host.$path;
    }
}

class Controller
{
    public function myAction(Request $request)
    {
        // Instead of
        $page = isset($_GET['page']) ? intval($_GET['page']) : 1;

        // Better (assuming you use the Symfony2 request)
        $page = $request->query->get('page', 1);
    }
}
Loading history...
64
        $cookies = $_COOKIE;
65
        if (count($cookies) > 0) {
66
            foreach ($cookies as $key => $value) {
67
                $this->remove($key);
68
            }
69
        }
70
    }
71
72
    public function onConfigChange() {
73
        
74
    }
75
76
    public function onLoad() {
77
        
78
    }
79
80
    public function onRemove() {
81
        
82
    }
83
84
}
85