summaryrefslogtreecommitdiffstats
path: root/src/Controller/CheckRequest.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Controller/CheckRequest.php')
-rw-r--r--src/Controller/CheckRequest.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/Controller/CheckRequest.php b/src/Controller/CheckRequest.php
new file mode 100644
index 0000000..a63a2b7
--- /dev/null
+++ b/src/Controller/CheckRequest.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace Jasny\Controller;
+
+use Psr\Http\Message\ServerRequestInterface;
+
+/**
+ * Controller methods to check the request
+ */
+trait CheckRequest
+{
+ /**
+ * Get request, set for controller
+ *
+ * @return ServerRequestInterface
+ */
+ abstract protected function getRequest();
+
+
+ /**
+ * Check if request is GET request
+ *
+ * @return boolean
+ */
+ public function isGetRequest()
+ {
+ $method = $this->getRequest()->getMethod();
+
+ return !$method || $method === 'GET';
+ }
+
+ /**
+ * Check if request is POST request
+ *
+ * @return boolean
+ */
+ public function isPostRequest()
+ {
+ return $this->getRequest()->getMethod() === 'POST';
+ }
+
+ /**
+ * Check if request is PUT request
+ *
+ * @return boolean
+ */
+ public function isPutRequest()
+ {
+ return $this->getRequest()->getMethod() === 'PUT';
+ }
+
+ /**
+ * Check if request is DELETE request
+ *
+ * @return boolean
+ */
+ public function isDeleteRequest()
+ {
+ return $this->getRequest()->getMethod() === 'DELETE';
+ }
+
+ /**
+ * Check if request is HEAD request
+ *
+ * @return boolean
+ */
+ public function isHeadRequest()
+ {
+ return $this->getRequest()->getMethod() === 'HEAD';
+ }
+
+
+ /**
+ * Returns the HTTP referer if it is on the current host
+ *
+ * @return string
+ */
+ public function getLocalReferer()
+ {
+ $request = $this->getRequest();
+ $referer = $request->getHeaderLine('HTTP_REFERER');
+ $host = $request->getHeaderLine('HTTP_HOST');
+
+ return $referer && parse_url($referer, PHP_URL_HOST) === $host ? $referer : '';
+ }
+} \ No newline at end of file