Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

MemcachedSessions.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 This file gets included if $wgSessionsInMemcache is set in the config. 00005 It redirects session handling functions to store their data in memcached 00006 instead of the local filesystem. Depending on circumstances, it may also 00007 be necessary to change the cookie settings to work across hostnames. 00008 00009 See: http://www.php.net/manual/en/function.session-set-save-handler.php 00010 */ 00011 00012 00013 function memsess_key( $id ) { 00014 global $wgDBname; 00015 return "$wgDBname:session:$id"; 00016 } 00017 00018 function memsess_open( $save_path, $session_name ) { 00019 # NOP, $wgMemc should be set up already 00020 return true; 00021 } 00022 00023 function memsess_close() { 00024 # NOP 00025 return true; 00026 } 00027 00028 function memsess_read( $id ) { 00029 global $wgMemc; 00030 $data = $wgMemc->get( memsess_key( $id ) ); 00031 if( ! $data ) return ""; 00032 return $data; 00033 } 00034 00035 function memsess_write( $id, $data ) { 00036 global $wgMemc; 00037 $wgMemc->set( memsess_key( $id ), $data, 3600 ); 00038 return true; 00039 } 00040 00041 function memsess_destroy( $id ) { 00042 global $wgMemc; 00043 $wgMemc->delete( memsess_key( $id ) ); 00044 return true; 00045 } 00046 00047 function memsess_gc( $maxlifetime ) { 00048 # NOP: Memcached performs garbage collection. 00049 return true; 00050 } 00051 00052 session_set_save_handler( "memsess_open", "memsess_close", "memsess_read", "memsess_write", "memsess_destroy", "memsess_gc" ); 00053 00054 ?>

Generated on Tue Jun 29 23:40:05 2004 for Mediawiki by doxygen 1.3.7