From ca32f08966f1b51fcb19460f0996bb0c4048e6fe Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sat, 3 Dec 2011 13:29:22 +0100 Subject: Update to MediaWiki 1.18.0 * also update ArchLinux skin to chagnes in MonoBook * Use only css to hide our menu bar when printing --- includes/objectcache/MemcachedPhpBagOStuff.php | 178 +++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 includes/objectcache/MemcachedPhpBagOStuff.php (limited to 'includes/objectcache/MemcachedPhpBagOStuff.php') diff --git a/includes/objectcache/MemcachedPhpBagOStuff.php b/includes/objectcache/MemcachedPhpBagOStuff.php new file mode 100644 index 00000000..14016683 --- /dev/null +++ b/includes/objectcache/MemcachedPhpBagOStuff.php @@ -0,0 +1,178 @@ +client = new MemCachedClientforWiki( $params ); + $this->client->set_servers( $params['servers'] ); + $this->client->set_debug( $params['debug'] ); + } + + /** + * @param $debug bool + */ + public function setDebug( $debug ) { + $this->client->set_debug( $debug ); + } + + /** + * @param $key string + * @return Mixed + */ + public function get( $key ) { + return $this->client->get( $this->encodeKey( $key ) ); + } + + /** + * @param $key string + * @param $value + * @param $exptime int + * @return bool + */ + public function set( $key, $value, $exptime = 0 ) { + return $this->client->set( $this->encodeKey( $key ), $value, $exptime ); + } + + /** + * @param $key string + * @param $time int + * @return bool + */ + public function delete( $key, $time = 0 ) { + return $this->client->delete( $this->encodeKey( $key ), $time ); + } + + /** + * @param $key + * @param $timeout int + * @return + */ + public function lock( $key, $timeout = 0 ) { + return $this->client->lock( $this->encodeKey( $key ), $timeout ); + } + + /** + * @param $key string + * @return Mixed + */ + public function unlock( $key ) { + return $this->client->unlock( $this->encodeKey( $key ) ); + } + + /** + * @param $key string + * @param $value int + * @return Mixed + */ + public function add( $key, $value, $exptime = 0 ) { + return $this->client->add( $this->encodeKey( $key ), $value, $exptime ); + } + + /** + * @param $key string + * @param $value int + * @param $exptime + * @return Mixed + */ + public function replace( $key, $value, $exptime = 0 ) { + return $this->client->replace( $this->encodeKey( $key ), $value, $exptime ); + } + + /** + * @param $key string + * @param $value int + * @return Mixed + */ + public function incr( $key, $value = 1 ) { + return $this->client->incr( $this->encodeKey( $key ), $value ); + } + + /** + * @param $key string + * @param $value int + * @return Mixed + */ + public function decr( $key, $value = 1 ) { + return $this->client->decr( $this->encodeKey( $key ), $value ); + } + + /** + * Get the underlying client object. This is provided for debugging + * purposes. + * + * @return MemCachedClientforWiki + */ + public function getClient() { + return $this->client; + } + + /** + * Encode a key for use on the wire inside the memcached protocol. + * + * We encode spaces and line breaks to avoid protocol errors. We encode + * the other control characters for compatibility with libmemcached + * verify_key. We leave other punctuation alone, to maximise backwards + * compatibility. + */ + public function encodeKey( $key ) { + return preg_replace_callback( '/[\x00-\x20\x25\x7f]+/', + array( $this, 'encodeKeyCallback' ), $key ); + } + + protected function encodeKeyCallback( $m ) { + return rawurlencode( $m[0] ); + } + + /** + * Decode a key encoded with encodeKey(). This is provided as a convenience + * function for debugging. + * + * @param $key string + * + * @return string + */ + public function decodeKey( $key ) { + return urldecode( $key ); + } +} + -- cgit v1.2.3-54-g00ecf