]> git.andy128k.dev Git - ipf.git/commitdiff
automatically unserialize session data
authorAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Mar 2013 12:20:00 +0000 (14:20 +0200)
committerAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Mar 2013 12:20:00 +0000 (14:20 +0200)
ipf/session/middleware.php
ipf/session/models/Session.php

index f70674f134ac81ccc9b8fa708b0522a84d844e05..65840edfc0a72acaf1a8ea487a9483e4f0990a02 100644 (file)
@@ -93,4 +93,4 @@ function IPF_Session_Middleware_ContextPreProcessor($request)
 
 Pluf_Signal::connect('Pluf_Template_Context_Request::construct',
                      array('Pluf_Middleware_Session', 'processContext'));
-*/
\ No newline at end of file
+*/
index 5191504e7d7e8720ac55519e272cefa37d5930e6..5054e4263f0ce362e21a5c1e30885a17ed58fdd6 100644 (file)
@@ -5,12 +5,26 @@ class Session extends BaseSession
     public $data = array();
     public $touched = false;
 
-    function clear(){
+    function clear()
+    {
         $this->data = array();
         $this->touched = true;
     }
 
-    function setData($key, $value=null){
+    function getSessionData()
+    {
+        return unserialize($this->session_data);
+    }
+
+    private function unserializeData()
+    {
+        if (!$this->data)
+            $this->data = $this->getSessionData();
+    }
+
+    function setData($key, $value=null)
+    {
+        $this->unserializeData();
         if (is_null($value)) {
             unset($this->data[$key]);
         } else {
@@ -19,14 +33,12 @@ class Session extends BaseSession
         $this->touched = true;
     }
 
-    function getSessionData(){
-       return unserialize($this->session_data);
-    }
-    
-    function getData($key=null, $default=''){
-        if (is_null($key)) 
+    function getData($key=null, $default='')
+    {
+        if (is_null($key))
             return parent::getData();
 
+        $this->unserializeData();
         if (isset($this->data[$key])) {
             return $this->data[$key];
         } else {
@@ -48,4 +60,5 @@ class Session extends BaseSession
         }
         $this->expire_data = gmdate('Y-m-d H:i:s', time()+31536000);
     }
-}
\ No newline at end of file
+}
+