get( memsess_key( $id ) ); if( ! $data ) return ''; return $data; } /** * Callback when writing session data. * * @param $id String: session id * @param $data Mixed: session data * @return Boolean: success */ function memsess_write( $id, $data ) { global $wgMemc; $wgMemc->set( memsess_key( $id ), $data, 3600 ); return true; } /** * Callback to destroy a session when calling session_destroy(). * * @param $id String: session id * @return Boolean: success */ function memsess_destroy( $id ) { global $wgMemc; $wgMemc->delete( memsess_key( $id ) ); return true; } /** * Callback to execute garbage collection. * NOP: Memcached performs garbage collection. * * @param $maxlifetime Integer: maximum session life time * @return Boolean: success */ function memsess_gc( $maxlifetime ) { return true; } session_set_save_handler( 'memsess_open', 'memsess_close', 'memsess_read', 'memsess_write', 'memsess_destroy', 'memsess_gc' );