| [ Index ] |
PHP Cross Reference of Limb3 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * Limb PHP Framework 4 * 5 * @link http://limb-project.com 6 * @copyright Copyright © 2004-2007 BIT(http://bit-creative.com) 7 * @license LGPL http://www.gnu.org/copyleft/lesser.html 8 */ 9 lmb_require('limb/core/src/lmbSerializable.class.php'); 10 11 12 /** 13 * Wrapper class for global $_SESSION variable 14 * 15 * @see lmbWebAppTools :: getSession() 16 * @version $Id: lmbSession.class.php 5945 2007-06-06 08:31:43Z pachanga $ 17 * @package session 18 */ 19 class lmbSession 20 { 21 /** 22 * @var array variables names that were changed. Used for testing purposes mostly. 23 */ 24 protected $touched_names = array(); 25 26 /** 27 * Starts session and installs driver 28 * @param object Concrete session driver 29 */ 30 function start($storage = null) 31 { 32 if($storage) 33 $storage->install(); 34 session_start(); 35 } 36 37 /** 38 * Register a variable in session and returns a reference to it. 39 * @param string variable name 40 */ 41 function & registerReference($name) 42 { 43 if(!isset($_SESSION[$name])) 44 $_SESSION[$name] = ''; 45 46 $this->touched_names[$name] = true; 47 return $_SESSION[$name]; 48 } 49 50 /** 51 * Returns variable value from session 52 * @param string variable name 53 * @param mixed value that should be returned if variable is not registered in session yet 54 * @return mixed 55 */ 56 function get($name, $empty_value = null) 57 { 58 if(!isset($_SESSION[$name])) 59 return $empty_value; 60 61 if(is_object($_SESSION[$name]) && $_SESSION[$name] instanceof lmbSerializable) 62 return $_SESSION[$name]->getSubject(); 63 else 64 return $_SESSION[$name]; 65 } 66 67 /** 68 * Sets variable into session 69 * Automatically wraps objects with {@link lmbSerializable} 70 * that helps to prevent <b>"class is not defined"</b> error while restoring session 71 * @param string variable name 72 * @param mixed value 73 * @return void 74 */ 75 function set($name, $value) 76 { 77 if(is_object($value)) 78 $_SESSION[$name] = new lmbSerializable($value); 79 else 80 $_SESSION[$name] = $value; 81 82 $this->touched_names[$name] = true; 83 } 84 85 /** 86 * Clears session 87 * @return void 88 */ 89 function reset() 90 { 91 $_SESSION = array(); 92 } 93 94 /** 95 * Returns TRUE if session has such variable 96 * @param string variable name 97 * @return boolean 98 */ 99 function exists($name) 100 { 101 return isset($_SESSION[$name]); 102 } 103 104 /** 105 * Removes variable from session 106 * @param string variable name 107 * @return void 108 */ 109 function destroy($name) 110 { 111 if(isset($_SESSION[$name])) 112 unset($_SESSION[$name]); 113 } 114 115 /** 116 * Alias for destroy() method 117 * @see destroy() 118 * @return void 119 */ 120 function remove($name) 121 { 122 $this->destroy($name); 123 } 124 125 /** 126 * Returns session data 127 * @return array 128 */ 129 function export() 130 { 131 return $_SESSION; 132 } 133 134 /** 135 * Removed all variables that were changed 136 * @see $touched_names 137 * @return void 138 */ 139 function destroyTouched() 140 { 141 foreach(array_keys($this->touched_names) as $name) 142 $this->destroy($name); 143 } 144 145 /** 146 * Dumps session data (for debugging purposes mostly) 147 * @return mixed 148 */ 149 function dump() 150 { 151 $str = ""; 152 if(!isset($_SESSION) || !is_array($_SESSION)) 153 return $str; 154 155 foreach($_SESSION as $key => $value) 156 { 157 $str .= "$key : "; 158 if(is_array($value)) 159 $str .= 'ARRAY[' . sizeof($value) . ']'; 160 elseif(is_object($value)) 161 $str .= 'OBJECT(' . get_class($value) . ')'; 162 else 163 $str .= strtoupper(gettype($value)); 164 $str .= "\n"; 165 } 166 return $str; 167 } 168 } 169 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Tue Oct 7 05:02:03 2008 | Cross-referenced by PHPXref 0.7 |