Completed
Push — master ( 83cea8...e47c19 )
by Anton
17s queued 12s
created

Response   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 75%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 9
c 1
b 1
f 0
dl 0
loc 54
ccs 9
cts 12
cp 0.75
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A initInstance() 0 3 1
A reload() 0 3 1
A redirectTo() 0 4 1
A redirect() 0 5 1
1
<?php
2
3
/**
4
 * Bluz Framework Component
5
 *
6
 * @copyright Bluz PHP Team
7
 * @link      https://github.com/bluzphp/framework
8
 */
9
10
declare(strict_types=1);
11
12
namespace Bluz\Proxy;
13
14
use Bluz\Common\Exception\ComponentException;
15
use Bluz\Controller\Controller;
16
use Bluz\Http\Exception\RedirectException;
17
use Bluz\Response\Response as Instance;
18
19
/**
20
 * Proxy to Response
21
 *
22
 * Example of usage
23
 * <code>
24
 *     use Bluz\Proxy\Response;
25
 *
26
 *     Response::setStatusCode(304);
27
 *     Response::setHeader('Location', '/index/index');
28
 * </code>
29
 *
30
 * @package  Bluz\Proxy
31
 * @author   Anton Shevchuk
32
 *
33
 * @method   static Instance getInstance()
34
 *
35
 * @method   static string getProtocolVersion()
36
 * @see      Instance::getProtocolVersion()
37
 *
38
 * @method   static string getStatusCode()
39
 * @see      Instance::getStatusCode()
40
 * @method   static void  setStatusCode($code)
41
 * @see      Instance::setStatusCode()
42
 *
43
 * @method   static void  setReasonPhrase($phrase)
44
 * @see      Instance::setReasonPhrase()
45
 * @method   static string getReasonPhrase()
46
 * @see      Instance::getReasonPhrase()
47
 *
48
 * @method   static string getHeader($header)
49
 * @see      Instance::getHeader()
50
 * @method   static array  getHeaderAsArray($header)
51
 * @see      Instance::getHeaderAsArray()
52
 * @method   static bool   hasHeader($header)
53
 * @see      Instance::hasHeader()
54
 * @method   static void   setHeader($header, $value)
55
 * @see      Instance::setHeader()
56
 * @method   static void   addHeader($header, $value)
57
 * @see      Instance::addHeader()
58
 * @method   static void   removeHeader($header)
59
 * @see      Instance::removeHeader()
60
 *
61
 * @method   static array  getHeaders()
62
 * @see      Instance::getHeaders()
63
 * @method   static void   setHeaders(array $headers)
64
 * @see      Instance::setHeaders()
65
 * @method   static void   addHeaders(array $headers)
66
 * @see      Instance::addHeaders()
67
 * @method   static void   removeHeaders()
68
 * @see      Instance::removeHeaders()
69
 *
70
 * @method   static void  setBody($phrase)
71
 * @see      Instance::setBody()
72
 * @method   static Controller  getBody()
73
 * @see      Instance::getBody()
74
 * @method   static void  clearBody()
75
 * @see      Instance::clearBody()
76
 *
77
 * @method   static void setCookie($name, $value = '', $expire = 0, $path = '/', $domain = '', $s = null, $h = null)
78
 * @see      Instance::setCookie()
79
 * @method   static array getCookie()
80
 * @see      Instance::getCookie()
81
 *
82
 * @method   static string getType()
83
 * @see      Instance::getType()
84
 * @method   static void setType($type)
85
 * @see      Instance::setType()
86
 *
87
 * @method   static void  send()
88
 * @see      Instance::send()
89
 */
90
final class Response
91
{
92
    use ProxyTrait;
93
94
    /**
95
     * Init instance
96
     *
97
     * @throws ComponentException
98
     */
99
    private static function initInstance()
0 ignored issues
show
Unused Code introduced by
The method initInstance() is not used, and could be removed.

This check looks for private methods that have been defined, but are not used inside the class.

Loading history...
100
    {
101
        throw new ComponentException("Class `Proxy\\Request` required external initialization");
102
    }
103
104
    /**
105
     * Redirect to URL
106
     *
107
     * @param  string $url
108
     *
109
     * @return void
110
     * @throws RedirectException
111
     */
112 5
    public static function redirect($url): void
113
    {
114 5
        $redirect = new RedirectException();
115 5
        $redirect->setUrl($url);
116 5
        throw $redirect;
117
    }
118
119
    /**
120
     * Redirect to controller
121
     *
122
     * @param  string $module
123
     * @param  string $controller
124
     * @param  array  $params
125
     *
126
     * @return void
127
     * @throws RedirectException
128
     */
129 3
    public static function redirectTo($module, $controller = 'index', array $params = []): void
130
    {
131 3
        $url = Router::getFullUrl($module, $controller, $params);
132 3
        self::redirect($url);
133
    }
134
135
    /**
136
     * Reload current page please, be careful to avoid loop of reload
137
     *
138
     * @return void
139
     * @throws RedirectException
140
     */
141 1
    public static function reload(): void
142
    {
143 1
        self::redirect((string) Request::getUri());
144
    }
145
}
146