summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Http/Request.php110
-rw-r--r--src/helpers.php17
2 files changed, 127 insertions, 0 deletions
diff --git a/src/Http/Request.php b/src/Http/Request.php
new file mode 100644
index 00000000..2efd1e1d
--- /dev/null
+++ b/src/Http/Request.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace Engelsystem\Http;
+
+use ErrorException;
+
+class Request
+{
+ /** @var self */
+ protected static $instance;
+
+ /** @var array of POST data */
+ protected $request;
+
+ /** @var array of GET data */
+ protected $query;
+
+ /**
+ * Initialize request
+ */
+ public function create()
+ {
+ $this->request = $_POST;
+ $this->query = $_GET;
+ }
+
+ /**
+ * Get GET input
+ *
+ * @param string $key
+ * @param mixed $default
+ * @return mixed
+ */
+ public function get($key, $default = null)
+ {
+ if (!empty($this->query[$key])) {
+ return $this->query[$key];
+ }
+
+ return $default;
+ }
+
+ /**
+ * Get POST input
+ *
+ * @param string $key
+ * @param mixed $default
+ * @return mixed
+ */
+ public function post($key, $default = null)
+ {
+ if (!empty($this->request[$key])) {
+ return $this->request[$key];
+ }
+
+ return $default;
+ }
+
+ /**
+ * Get input data
+ *
+ * @param string $key
+ * @param mixed $default
+ * @return mixed
+ */
+ public function input($key, $default = null)
+ {
+ $data = $this->request + $this->query;
+
+ if (!empty($data[$key])) {
+ return $data[$key];
+ }
+
+ return $default;
+ }
+
+ /**
+ * Checks if the input exists
+ *
+ * @param string $key
+ * @return bool
+ */
+ public function has($key)
+ {
+ $value = $this->input($key);
+
+ return !empty($value);
+ }
+
+ /**
+ * @return self
+ * @throws ErrorException
+ */
+ public static function getInstance()
+ {
+ if (!self::$instance instanceof self) {
+ throw new ErrorException('Request not initialized');
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * @param self $instance
+ */
+ public static function setInstance($instance)
+ {
+ self::$instance = $instance;
+ }
+}
diff --git a/src/helpers.php b/src/helpers.php
index aeb256e9..a410b27e 100644
--- a/src/helpers.php
+++ b/src/helpers.php
@@ -2,6 +2,7 @@
// Some useful functions
use Engelsystem\Config\Config;
+use Engelsystem\Http\Request;
/**
* Get or set config values
@@ -22,3 +23,19 @@ function config($key = null, $default = null)
return Config::getInstance()->get($key, $default);
}
+
+/**
+ * @param string $key
+ * @param mixed $default
+ * @return Request|mixed
+ */
+function request($key = null, $default = null)
+{
+ $request = Request::getInstance();
+
+ if (is_null($key)) {
+ return $request;
+ }
+
+ return $request->input($key, $default);
+}