Issues (2407)

engine/library/Response.php (1 issue)

1
<?php
2
/* 	Divine CMS - Open source CMS for widespread use.
3
    Copyright (c) 2019 Mykola Burakov ([email protected])
4
5
    See SOURCE.txt for other and additional information.
6
7
    This file is part of Divine CMS.
8
9
    This program is free software: you can redistribute it and/or modify
10
    it under the terms of the GNU General Public License as published by
11
    the Free Software Foundation, either version 3 of the License, or
12
    (at your option) any later version.
13
14
    This program is distributed in the hope that it will be useful,
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
    GNU General Public License for more details.
18
19
    You should have received a copy of the GNU General Public License
20
    along with this program. If not, see <http://www.gnu.org/licenses/>. */
21
22
namespace Divine\Engine\Library;
23
24
class Response
25
{
26
    private $headers = array();
27
    private $output;
28
29
    public function addHeader($header)
0 ignored issues
show
Expected 2 blank lines before function; 1 found
Loading history...
30
    {
31
        $this->headers[] = $header;
32
    }
33
34
    public function redirect($url, $status = 302)
35
    {
36
        header('Location: ' . str_replace(array('&amp;', "\n", "\r"), array('&', '', ''), $url), true, $status);
37
        exit();
38
    }
39
40
    public function getOutput()
41
    {
42
        return $this->output;
43
    }
44
45
    public function setOutput($output)
46
    {
47
        $this->output = $output;
48
    }
49
50
    public function output()
51
    {
52
        if ($this->output) {
53
            $output = $this->output;
54
55
            if (!headers_sent()) {
56
                foreach ($this->headers as $header) {
57
                    header($header, true);
58
                }
59
            }
60
61
            echo $output;
62
        }
63
    }
64
}
65