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' );