/
Redirect.php
71 lines (58 loc) · 1.42 KB
/
Redirect.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace SSFrame;
use SSFrame\Sessions\Session;
class Redirect
{
public static $_instance = null;
private $_path;
private $_errors;
private $_success;
private $_input;
private $session;
public function __construct()
{
$this->session = Session::getInstance()->getSession();
}
public function to($path)
{
$this->_path = $path;
return $this;
}
public function back()
{
$this->_path = $_SERVER['HTTP_REFERER'];
return $this;
}
public function withErrors($errors)
{
$this->_errors = (array)$errors;
return $this;
}
public function withSuccess($success)
{
$this->_success = (array)$success;
return $this;
}
public function withInput($input)
{
$this->_input = (array)$input;
return $this;
}
public function go()
{
$this->session->unsetKey('withErrors');
$this->session->unsetKey('withSuccess');
$this->session->unsetKey('withInput');
$this->session->withErrors = $this->_errors;
$this->session->withSuccess = $this->_success;
$this->session->withInput = $this->_input;
header("Location: ".$this->_path);
}
public static function getInstance()
{
if (self::$_instance == null) {
self::$_instance = new Redirect();
}
return self::$_instance;
}
}