From 5c19b995db6dab9aae579274db82413117cce67b Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Tue, 17 Sep 2013 18:31:14 +0200 Subject: [PATCH 1/4] Add interface for Session and add getter in server container. --- lib/public/iservercontainer.php | 7 ++++++ lib/public/isession.php | 44 +++++++++++++++++++++++++++++++++ lib/server.php | 10 ++++++++ lib/session/session.php | 2 +- 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 lib/public/isession.php diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index d88330698dc..ec7212b306e 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -62,4 +62,11 @@ interface IServerContainer { */ function getRootFolder(); + /** + * Returns the current session + * + * @return \OCP\ISession + */ + function getSession(); + } diff --git a/lib/public/isession.php b/lib/public/isession.php new file mode 100644 index 00000000000..5f9ce32f3b1 --- /dev/null +++ b/lib/public/isession.php @@ -0,0 +1,44 @@ +query('RootFolder'); } + + /** + * Returns the current session + * + * @return \OCP\ISession + */ + function getSession() { + return \OC::$session; + } + } diff --git a/lib/session/session.php b/lib/session/session.php index 55515f57a87..c55001eccac 100644 --- a/lib/session/session.php +++ b/lib/session/session.php @@ -8,7 +8,7 @@ namespace OC\Session; -abstract class Session implements \ArrayAccess { +abstract class Session implements \ArrayAccess, \OCP\ISession { /** * $name serves as a namespace for the session keys * From 5bddb5377a40c987223804e8c3846437b6cf120a Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Tue, 17 Sep 2013 18:38:18 +0200 Subject: [PATCH 2/4] Purge session from Request - and fix some styles --- lib/appframework/http/request.php | 51 ++++++++++--------------------- lib/public/irequest.php | 9 ------ lib/server.php | 1 - 3 files changed, 16 insertions(+), 45 deletions(-) diff --git a/lib/appframework/http/request.php b/lib/appframework/http/request.php index 4f1775182a1..34605acdfea 100644 --- a/lib/appframework/http/request.php +++ b/lib/appframework/http/request.php @@ -33,16 +33,15 @@ class Request implements \ArrayAccess, \Countable, IRequest { protected $items = array(); protected $allowedKeys = array( - 'get', - 'post', - 'files', - 'server', - 'env', - 'session', - 'cookies', - 'urlParams', - 'params', - 'parameters', + 'get', + 'post', + 'files', + 'server', + 'env', + 'cookies', + 'urlParams', + 'params', + 'parameters', 'method' ); @@ -156,7 +155,6 @@ class Request implements \ArrayAccess, \Countable, IRequest { case 'files': case 'server': case 'env': - case 'session': case 'cookies': case 'parameters': case 'params': @@ -229,8 +227,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * @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) - { + public function getParam($key, $default = null) { return isset($this->parameters[$key]) ? $this->parameters[$key] : $default; @@ -241,8 +238,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * (as GET or POST) or throuh the URL by the route * @return array the array with all parameters */ - public function getParams() - { + public function getParams() { return $this->parameters; } @@ -250,8 +246,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * Returns the method of the request * @return string the method of the request (POST, GET, etc) */ - public function getMethod() - { + public function getMethod() { return $this->method; } @@ -260,8 +255,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * @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) - { + public function getUploadedFile($key) { return isset($this->files[$key]) ? $this->files[$key] : null; } @@ -270,28 +264,16 @@ class Request implements \ArrayAccess, \Countable, IRequest { * @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) - { + 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) - { + function getCookie($key) { return isset($this->cookies[$key]) ? $this->cookies[$key] : null; } @@ -304,8 +286,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * * @throws \LogicException */ - function getContent($asResource = false) - { + 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.'); diff --git a/lib/public/irequest.php b/lib/public/irequest.php index cd39855950b..9f335b06f2a 100644 --- a/lib/public/irequest.php +++ b/lib/public/irequest.php @@ -76,15 +76,6 @@ interface IRequest { 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 * diff --git a/lib/server.php b/lib/server.php index 0124ad72c02..0eee3e0f73a 100644 --- a/lib/server.php +++ b/lib/server.php @@ -36,7 +36,6 @@ class Server extends SimpleContainer implements IServerContainer { 'files' => $_FILES, 'server' => $_SERVER, 'env' => $_ENV, - 'session' => $_SESSION, 'cookies' => $_COOKIE, 'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD'])) ? $_SERVER['REQUEST_METHOD'] From 8b4f4a79e22dc08cf7c13a91c926c229676d6522 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Tue, 17 Sep 2013 19:46:08 +0200 Subject: [PATCH 3/4] Still some session leftovers. --- lib/appframework/controller/controller.php | 10 ---------- tests/lib/appframework/controller/ControllerTest.php | 5 ----- 2 files changed, 15 deletions(-) diff --git a/lib/appframework/controller/controller.php b/lib/appframework/controller/controller.php index a7498ba0e1e..0ea0a38cc09 100644 --- a/lib/appframework/controller/controller.php +++ b/lib/appframework/controller/controller.php @@ -106,16 +106,6 @@ abstract class Controller { } - /** - * 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 - */ - public function session($key) { - return $this->request->getSession($key); - } - - /** * Shortcut for getting cookie variables * @param string $key the key that will be taken from the $_COOKIE array diff --git a/tests/lib/appframework/controller/ControllerTest.php b/tests/lib/appframework/controller/ControllerTest.php index 246371d249c..4441bddfca9 100644 --- a/tests/lib/appframework/controller/ControllerTest.php +++ b/tests/lib/appframework/controller/ControllerTest.php @@ -152,9 +152,4 @@ class ControllerTest extends \PHPUnit_Framework_TestCase { $this->assertEquals('daheim', $this->controller->env('PATH')); } - public function testGetSessionVariable(){ - $this->assertEquals('kein', $this->controller->session('sezession')); - } - - } From d3f88ceeb49b9b86d32124163b0cea82567a4911 Mon Sep 17 00:00:00 2001 From: Thomas Tanghus Date: Wed, 18 Sep 2013 12:01:01 +0200 Subject: [PATCH 4/4] Add some docs to the sessions interface. --- lib/public/isession.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/public/isession.php b/lib/public/isession.php index 5f9ce32f3b1..0a77b0c823b 100644 --- a/lib/public/isession.php +++ b/lib/public/isession.php @@ -10,34 +10,46 @@ namespace OCP; +/** + * Interface ISession + * + * wrap PHP's internal session handling into the ISession interface + */ interface ISession { + /** + * Set a value in the session + * * @param string $key * @param mixed $value */ public function set($key, $value); /** + * Get a value from the session + * * @param string $key * @return mixed should return null if $key does not exist */ public function get($key); /** + * Check if a named key exists in the session + * * @param string $key * @return bool */ public function exists($key); /** - * should not throw any errors if $key does not exist + * Remove a $key/$value pair from the session * * @param string $key */ public function remove($key); /** - * removes all entries within the cache namespace + * Reset and recreate the session */ public function clear();