00001 <?php 00016 function memsess_key( $id ) { 00017 return wfMemcKey( 'session', $id ); 00018 } 00019 00023 function memsess_open( $save_path, $session_name ) { 00024 # NOP, $wgMemc should be set up already 00025 return true; 00026 } 00027 00031 function memsess_close() { 00032 # NOP 00033 return true; 00034 } 00035 00039 function memsess_read( $id ) { 00040 global $wgMemc; 00041 $data = $wgMemc->get( memsess_key( $id ) ); 00042 if( ! $data ) return ''; 00043 return $data; 00044 } 00045 00049 function memsess_write( $id, $data ) { 00050 global $wgMemc; 00051 $wgMemc->set( memsess_key( $id ), $data, 3600 ); 00052 return true; 00053 } 00054 00058 function memsess_destroy( $id ) { 00059 global $wgMemc; 00060 $wgMemc->delete( memsess_key( $id ) ); 00061 return true; 00062 } 00063 00067 function memsess_gc( $maxlifetime ) { 00068 # NOP: Memcached performs garbage collection. 00069 return true; 00070 } 00071 00072 session_set_save_handler( 'memsess_open', 'memsess_close', 'memsess_read', 'memsess_write', 'memsess_destroy', 'memsess_gc' );