20 require_once(BASE.
"wcmf/lib/util/class.ObjectFactory.php");
24 $classFile = $objectFactory->getClassfileFromConfig($className);
25 if ($classFile !==
false) {
26 require_once(BASE.$classFile);
49 $path = array_pop(split(
";", session_save_path()));
63 if ($sessionID != null)
68 session_id($sessionID);
72 if (file_exists($filename))
74 $fp = fopen($filename,
"r");
75 $classDefs = fread($fp, filesize ($filename));
77 foreach (split(
"\n", $classDefs) as $classDef)
79 require_once($classDef);
83 if (strlen($_COOKIE[ini_get(
'session.name')]) == 0) {
84 session_regenerate_id();
86 $this->_id = session_id();
87 session_write_close();
98 if ($gSessionData == null)
120 if (array_key_exists($key, $_SESSION))
122 $val = &$_SESSION[$key];
125 $classMethods = array_map(
"strtolower", get_class_methods($val));
126 if (in_array(
'loadFromSession', $classMethods))
127 $val->loadFromSession();
130 session_write_close();
141 function set($key, &$val, $classFiles=null)
147 if ($classFiles == null)
150 $classMethods = array_map(strtolower, get_class_methods($val));
151 if (!in_array(
'getclassdefinitionfiles', $classMethods))
153 WCMFException::throwEx(
"Class ".get_class($val).
" does not implement the Storable interface.", __FILE__, __LINE__);
158 $classFiles = $val->getClassDefinitionFiles();
160 if (in_array(
'saveToSession', $classMethods))
161 $val->saveToSession();
168 $_SESSION[$key] = &$val;
169 session_write_close();
179 if (file_exists($filename))
181 $fp = fopen($filename,
"r");
182 $classDefsStr = fread($fp, filesize ($filename));
185 $classDefs = preg_split(
"/\n/", $classDefsStr);
186 $fp = fopen($filename,
"a");
187 foreach ($classFiles as $classFile)
188 if (!in_array($classFile, $classDefs))
189 fwrite($fp, $classFile.
"\n");
196 function remove($key)
199 unset($_SESSION[$key]);
200 session_write_close();
210 return array_key_exists($key, $_SESSION);
211 session_write_close();
220 session_write_close();
230 if (!is_array($_SESSION[$this->ERROR_VARNAME]))
233 session_write_close();
244 session_write_close();
254 session_write_close();
262 unset($_SESSION[$this->ERROR_VARNAME]);
263 session_write_close();
273 if (file_exists($filename))
throwEx($message, $file='', $line='')
addClassDefinitions($classFiles)
set($key, &$val, $classFiles=null)
This class provides a unified access to session data.