/** * @method readHandler * @static * @param {string} $id * @return {string} */ static function readHandler($id) { /** * @event Q/session/read {before} * @param 'save_path' {string} * @param 'session_db_connection' {iDb} * @return {string} */ $result = Q::event('Q/session/read', array('save_path' => self::$session_save_path, 'session_db_connection' => self::$session_db_connection), 'before'); if (isset($result)) { return $result; } if (empty(self::$session_save_path)) { self::$session_save_path = self::savePath(); } if (!empty(self::$session_db_connection)) { $id_field = self::$session_db_id_field; $data_field = self::$session_db_data_field; if (!self::$session_db_row or self::$session_db_row->{$id_field} != $id) { $class = self::$session_db_row_class; $row = new $class(); $row->{$id_field} = $id; $row->retrieve(); self::$session_db_row = $row; } $result = isset(self::$session_db_row->{$data_field}) ? self::$session_db_row->{$data_field} : null; } else { $duration_name = self::durationName(); $id1 = substr($id, 0, 4); $id2 = substr($id, 4); $sess_file = self::$session_save_path . DS . "{$duration_name}/{$id1}/{$id2}"; if (!file_exists($sess_file)) { $result = null; } else { $result = (string) file_get_contents($sess_file); } } self::$sess_data = $result; /** * @event Q/session/read {after} * @param 'save_path' {string} * @param 'session_db_connection' {iDb} * @return {string} */ $result = Q::event('Q/session/read', array('save_path' => self::$session_save_path, 'session_db_connection' => self::$session_db_connection, 'sess_data' => $result), 'after', false, $result); return $result; }