Fix for compatibility with short_open_tag = Off
[lhc/web/wiklou.git] / includes / MemcachedSessions.php
1 <?php
2
3 /*
4 This file gets included if $wgSessionsInMemcache is set in the config.
5 It redirects session handling functions to store their data in memcached
6 instead of the local filesystem. Depending on circumstances, it may also
7 be necessary to change the cookie settings to work across hostnames.
8
9 See: http://www.php.net/manual/en/function.session-set-save-handler.php
10 */
11
12
13 function memsess_key( $id ) {
14 global $wgDBname;
15 return "$wgDBname:session:$id";
16 }
17
18 function memsess_open( $save_path, $session_name ) {
19 # NOP, $wgMemc should be set up already
20 return true;
21 }
22
23 function memsess_close() {
24 # NOP
25 return true;
26 }
27
28 function memsess_read( $id ) {
29 global $wgMemc;
30 $data = $wgMemc->get( memsess_key( $id ) );
31 if( ! $data ) return "";
32 return $data;
33 }
34
35 function memsess_write( $id, $data ) {
36 global $wgMemc;
37 $wgMemc->set( memsess_key( $id ), $data, 3600 );
38 return true;
39 }
40
41 function memsess_destroy( $id ) {
42 global $wgMemc;
43 $wgMemc->delete( memsess_key( $id ) );
44 return true;
45 }
46
47 function memsess_gc( $maxlifetime ) {
48 # NOP: Memcached performs garbage collection.
49 return true;
50 }
51
52 session_set_save_handler( "memsess_open", "memsess_close", "memsess_read", "memsess_write", "memsess_destroy", "memsess_gc" );
53
54 ?>