summaryrefslogtreecommitdiff
path: root/src/Http/Redirector.php
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2019-12-08 11:48:58 +0100
committerGitHub <noreply@github.com>2019-12-08 11:48:58 +0100
commita3a938a1210f1bfb2680c25b2bcf53e47444bdba (patch)
treefd4c13fd9b714c0d8c60b6d3fe3e2fc88b82b717 /src/Http/Redirector.php
parentb540ac93856065ce6e145930b6611e0a0946d646 (diff)
parent064a1750279be244f86cf24f29749b391b11f1dd (diff)
Merge pull request #685 from MyIgel/schedule-import
Rebuild Schedule import
Diffstat (limited to 'src/Http/Redirector.php')
-rw-r--r--src/Http/Redirector.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/Http/Redirector.php b/src/Http/Redirector.php
new file mode 100644
index 00000000..4149a8ec
--- /dev/null
+++ b/src/Http/Redirector.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Engelsystem\Http;
+
+class Redirector
+{
+ /** @var Request */
+ protected $request;
+
+ /** @var Response */
+ protected $response;
+
+ /**
+ * @param Request $request
+ * @param Response $response
+ */
+ public function __construct(Request $request, Response $response)
+ {
+ $this->request = $request;
+ $this->response = $response;
+ }
+
+ /**
+ * @param string $path
+ * @param int $status
+ * @param array $headers
+ * @return Response
+ */
+ public function to(string $path, int $status = 302, array $headers = []): Response
+ {
+ return $this->response->redirectTo($path, $status, $headers);
+ }
+
+ /**
+ * @param int $status
+ * @param array $headers
+ * @return Response
+ */
+ public function back(int $status = 302, array $headers = []): Response
+ {
+ return $this->to($this->getPreviousUrl(), $status, $headers);
+ }
+
+ /**
+ * @return string
+ */
+ protected function getPreviousUrl(): string
+ {
+ if ($header = $this->request->getHeader('referer')) {
+ return array_pop($header);
+ }
+
+ return '/';
+ }
+}