]> source.dussan.org Git - nextcloud-server.git/commitdiff
Introducing IRequest
authorThomas Müller <thomas.mueller@tmit.eu>
Tue, 20 Aug 2013 15:53:58 +0000 (17:53 +0200)
committerThomas Müller <thomas.mueller@tmit.eu>
Tue, 20 Aug 2013 15:53:58 +0000 (17:53 +0200)
lib/appframework/http/request.php
lib/public/core/irequest.php [new file with mode: 0644]

index 7d024c8605fa90c2ca1b2e0ceb619fcadf1370ff..ab72a8db697fb6d658e3d1ee464f0c7cc6875f0e 100644 (file)
 
 namespace OC\AppFramework\Http;
 
+use OCP\Core\IRequest;
+
 /**
  * Class for accessing variables in the request.
  * This class provides an immutable object with request variables.
  */
 
-class Request implements \ArrayAccess, \Countable {
+class Request implements \ArrayAccess, \Countable, IRequest {
 
        protected $items = array();
        protected $allowedKeys = array(
@@ -214,4 +216,111 @@ class Request implements \ArrayAccess, \Countable {
                return null;
        }
 
+       /**
+        * Lets you access post and get parameters by the index
+        * In case of json requests the encoded json body is accessed
+        *
+        * @param string $key the key which you want to access in the URL Parameter
+        *                     placeholder, $_POST or $_GET array.
+        *                     The priority how they're returned is the following:
+        *                     1. URL parameters
+        *                     2. POST parameters
+        *                     3. GET parameters
+        * @param mixed $default If the key is not found, this value will be returned
+        * @return mixed the content of the array
+        */
+       public function getParam($key, $default = null)
+       {
+               return isset($this->parameters[$key])
+                       ? $this->parameters[$key]
+                       : $default;
+       }
+
+       /**
+        * Returns all params that were received, be it from the request
+        * (as GET or POST) or throuh the URL by the route
+        * @return array the array with all parameters
+        */
+       public function getParams()
+       {
+               return $this->parameters;
+       }
+
+       /**
+        * Returns the method of the request
+        * @return string the method of the request (POST, GET, etc)
+        */
+       public function getMethod()
+       {
+               return $this->method;
+       }
+
+       /**
+        * Shortcut for accessing an uploaded file through the $_FILES array
+        * @param string $key the key that will be taken from the $_FILES array
+        * @return array the file in the $_FILES element
+        */
+       public function getUploadedFile($key)
+       {
+               return isset($this->files[$key]) ? $this->files[$key] : null;
+       }
+
+       /**
+        * Shortcut for getting env variables
+        * @param string $key the key that will be taken from the $_ENV array
+        * @return array the value in the $_ENV element
+        */
+       public function getEnv($key)
+       {
+               return isset($this->env[$key]) ? $this->env[$key] : null;
+       }
+
+       /**
+        * Shortcut for getting session variables
+        * @param string $key the key that will be taken from the $_SESSION array
+        * @return array the value in the $_SESSION element
+        */
+       function getSession($key)
+       {
+               return isset($this->session[$key]) ? $this->session[$key] : null;
+       }
+
+       /**
+        * Shortcut for getting cookie variables
+        * @param string $key the key that will be taken from the $_COOKIE array
+        * @return array the value in the $_COOKIE element
+        */
+       function getCookie($key)
+       {
+               return isset($this->cookies[$key]) ? $this->cookies[$key] : null;
+       }
+
+       /**
+        * Returns the request body content.
+        *
+        * @param Boolean $asResource If true, a resource will be returned
+        *
+        * @return string|resource The request body content or a resource to read the body stream.
+        *
+        * @throws \LogicException
+        */
+       function getContent($asResource = false)
+       {
+               return null;
+//             if (false === $this->content || (true === $asResource && null !== $this->content)) {
+//                     throw new \LogicException('getContent() can only be called once when using the resource return type.');
+//             }
+//
+//             if (true === $asResource) {
+//                     $this->content = false;
+//
+//                     return fopen('php://input', 'rb');
+//             }
+//
+//             if (null === $this->content) {
+//                     $this->content = file_get_contents('php://input');
+//             }
+//
+//             return $this->content;
+       }
 }
diff --git a/lib/public/core/irequest.php b/lib/public/core/irequest.php
new file mode 100644 (file)
index 0000000..f283e9c
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Created by JetBrains PhpStorm.
+ * User: deepdiver
+ * Date: 20.08.13
+ * Time: 16:15
+ * To change this template use File | Settings | File Templates.
+ */
+
+namespace OCP\Core;
+
+
+interface IRequest {
+
+       function getHeader($name);
+
+       /**
+        * Lets you access post and get parameters by the index
+        * In case of json requests the encoded json body is accessed
+        *
+        * @param string $key the key which you want to access in the URL Parameter
+        *                     placeholder, $_POST or $_GET array.
+        *                     The priority how they're returned is the following:
+        *                     1. URL parameters
+        *                     2. POST parameters
+        *                     3. GET parameters
+        * @param mixed $default If the key is not found, this value will be returned
+        * @return mixed the content of the array
+        */
+       public function getParam($key, $default = null);
+
+
+       /**
+        * Returns all params that were received, be it from the request
+        * (as GET or POST) or throuh the URL by the route
+        * @return array the array with all parameters
+        */
+       public function getParams();
+
+       /**
+        * Returns the method of the request
+        * @return string the method of the request (POST, GET, etc)
+        */
+       public function getMethod();
+
+       /**
+        * Shortcut for accessing an uploaded file through the $_FILES array
+        * @param string $key the key that will be taken from the $_FILES array
+        * @return array the file in the $_FILES element
+        */
+       public function getUploadedFile($key);
+
+
+       /**
+        * Shortcut for getting env variables
+        * @param string $key the key that will be taken from the $_ENV array
+        * @return array the value in the $_ENV element
+        */
+       public function getEnv($key);
+
+
+       /**
+        * Shortcut for getting session variables
+        * @param string $key the key that will be taken from the $_SESSION array
+        * @return array the value in the $_SESSION element
+        */
+       function getSession($key);
+
+
+       /**
+        * Shortcut for getting cookie variables
+        * @param string $key the key that will be taken from the $_COOKIE array
+        * @return array the value in the $_COOKIE element
+        */
+       function getCookie($key);
+
+
+       /**
+        * Returns the request body content.
+        *
+        * @param Boolean $asResource If true, a resource will be returned
+        *
+        * @return string|resource The request body content or a resource to read the body stream.
+        *
+        * @throws \LogicException
+        */
+       function getContent($asResource = false);
+}