From 304eaf2868514fc5f3263f4e09d19bd2adfc5837 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Tue, 10 Nov 2015 03:20:08 +0000 Subject: [PATCH] objectcache: Reduce MediaWiki-specificness from Memcached classes Follows-up f36b73e96c, which moved these classes to libs/objectcache. * Fix wrong @throws in MemcachedPeclBagOStuff. * Fix wrong @returns in MemcachedBagOStuff::getClient(). * Rename MWMemcached to MemcachedClient. * Remove mention of 'memcached.php', which doesn't exist anymore. Change-Id: I34dbc859be4778cea489fd2344f233f30452605c --- autoload.php | 5 +- includes/compat/MemcachedClientCompat.php | 34 ++++++++++++ .../libs/objectcache/MemcachedBagOStuff.php | 4 +- includes/libs/objectcache/MemcachedClient.php | 52 ++++++++----------- .../objectcache/MemcachedPhpBagOStuff.php | 2 +- .../objectcache/MemcachedPeclBagOStuff.php | 4 +- maintenance/mcc.php | 2 +- 7 files changed, 66 insertions(+), 37 deletions(-) create mode 100644 includes/compat/MemcachedClientCompat.php diff --git a/autoload.php b/autoload.php index b27ce46b04..15f1b10ebf 100644 --- a/autoload.php +++ b/autoload.php @@ -721,7 +721,7 @@ $wgAutoloadLocalClasses = array( 'MWExceptionHandler' => __DIR__ . '/includes/exception/MWExceptionHandler.php', 'MWHookException' => __DIR__ . '/includes/Hooks.php', 'MWHttpRequest' => __DIR__ . '/includes/HttpFunctions.php', - 'MWMemcached' => __DIR__ . '/includes/libs/objectcache/MemcachedClient.php', + 'MWMemcached' => __DIR__ . '/includes/compat/MemcachedClientCompat.php', 'MWMessagePack' => __DIR__ . '/includes/libs/MWMessagePack.php', 'MWNamespace' => __DIR__ . '/includes/MWNamespace.php', 'MWOldPassword' => __DIR__ . '/includes/password/MWOldPassword.php', @@ -779,9 +779,10 @@ $wgAutoloadLocalClasses = array( 'MediaWiki\\Widget\\NamespaceInputWidget' => __DIR__ . '/includes/widget/NamespaceInputWidget.php', 'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php', 'MediaWiki\\Widget\\UserInputWidget' => __DIR__ . '/includes/widget/UserInputWidget.php', - 'MemCachedClientforWiki' => __DIR__ . '/includes/libs/objectcache/MemcachedClient.php', + 'MemCachedClientforWiki' => __DIR__ . '/includes/compat/MemcachedClientCompat.php', 'MemcLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MemcLockManager.php', 'MemcachedBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedBagOStuff.php', + 'MemcachedClient' => __DIR__ . '/includes/libs/objectcache/MemcachedClient.php', 'MemcachedPeclBagOStuff' => __DIR__ . '/includes/objectcache/MemcachedPeclBagOStuff.php', 'MemcachedPhpBagOStuff' => __DIR__ . '/includes/libs/objectcache/MemcachedPhpBagOStuff.php', 'MemoizedCallable' => __DIR__ . '/includes/libs/MemoizedCallable.php', diff --git a/includes/compat/MemcachedClientCompat.php b/includes/compat/MemcachedClientCompat.php new file mode 100644 index 0000000000..23047339cc --- /dev/null +++ b/includes/compat/MemcachedClientCompat.php @@ -0,0 +1,34 @@ +client; diff --git a/includes/libs/objectcache/MemcachedClient.php b/includes/libs/objectcache/MemcachedClient.php index 5010b8998a..8007a53842 100644 --- a/includes/libs/objectcache/MemcachedClient.php +++ b/includes/libs/objectcache/MemcachedClient.php @@ -41,43 +41,42 @@ */ /** - * This is the PHP client for memcached - a distributed memory cache daemon. + * This is a PHP client for memcached - a distributed memory cache daemon. + * * More information is available at http://www.danga.com/memcached/ * * Usage example: * - * require_once 'memcached.php'; - * - * $mc = new MWMemcached(array( - * 'servers' => array('127.0.0.1:10000', - * array('192.0.0.1:10010', 2), - * '127.0.0.1:10020'), - * 'debug' => false, - * 'compress_threshold' => 10240, - * 'persistent' => true)); + * $mc = new MemcachedClient(array( + * 'servers' => array( + * '127.0.0.1:10000', + * array( '192.0.0.1:10010', 2 ), + * '127.0.0.1:10020' + * ), + * 'debug' => false, + * 'compress_threshold' => 10240, + * 'persistent' => true + * )); * - * $mc->add( 'key', array( 'some', 'array' ) ); - * $mc->replace( 'key', 'some random string' ); - * $val = $mc->get( 'key' ); + * $mc->add( 'key', array( 'some', 'array' ) ); + * $mc->replace( 'key', 'some random string' ); + * $val = $mc->get( 'key' ); * - * @author Ryan T. Dean + * @author Ryan T. Dean * @version 0.1.2 */ use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; -// {{{ requirements -// }}} - -// {{{ class MWMemcached +// {{{ class MemcachedClient /** * memcached client class implemented using (p)fsockopen() * * @author Ryan T. Dean * @ingroup Cache */ -class MWMemcached { +class MemcachedClient { // {{{ properties // {{{ public @@ -659,7 +658,7 @@ class MWMemcached { // {{{ set_compress_threshold() /** - * Sets the compression threshold + * Set the compression threshold * * @param int $thresh Threshold to compress if larger than */ @@ -671,11 +670,10 @@ class MWMemcached { // {{{ set_debug() /** - * Sets the debug flag + * Set the debug flag * + * @see __construct() * @param bool $dbg True for debugging, false otherwise - * - * @see MWMemcached::__construct */ public function set_debug( $dbg ) { $this->_debug = $dbg; @@ -685,11 +683,10 @@ class MWMemcached { // {{{ set_servers() /** - * Sets the server list to distribute key gets and puts between + * Set the server list to distribute key gets and puts between * + * @see __construct() * @param array $list Array of servers to connect to - * - * @see MWMemcached::__construct() */ public function set_servers( $list ) { $this->_servers = $list; @@ -1271,6 +1268,3 @@ class MWMemcached { } // }}} - -class MemCachedClientforWiki extends MWMemcached { -} diff --git a/includes/libs/objectcache/MemcachedPhpBagOStuff.php b/includes/libs/objectcache/MemcachedPhpBagOStuff.php index 1bb38fa10b..e2d9d9394c 100644 --- a/includes/libs/objectcache/MemcachedPhpBagOStuff.php +++ b/includes/libs/objectcache/MemcachedPhpBagOStuff.php @@ -42,7 +42,7 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff { parent::__construct( $params ); $params = $this->applyDefaultParams( $params ); - $this->client = new MWMemcached( $params ); + $this->client = new MemcachedClient( $params ); $this->client->set_servers( $params['servers'] ); $this->client->set_debug( $params['debug'] ); } diff --git a/includes/objectcache/MemcachedPeclBagOStuff.php b/includes/objectcache/MemcachedPeclBagOStuff.php index b7d1eaf045..aa21cbb74a 100644 --- a/includes/objectcache/MemcachedPeclBagOStuff.php +++ b/includes/objectcache/MemcachedPeclBagOStuff.php @@ -43,7 +43,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff { * values, but serialization is much slower unless the php.ini option * igbinary.compact_strings is off. * @param array $params - * @throws MWException + * @throws InvalidArgumentException */ function __construct( $params ) { parent::__construct( $params ); @@ -89,7 +89,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff { // is as good as any. There's no way to configure libmemcached to use // hashes identical to the ones currently in use by the PHP client, and // even implementing one of the libmemcached hashes in pure PHP for - // forwards compatibility would require MWMemcached::get_sock() to be + // forwards compatibility would require MemcachedClient::get_sock() to be // rewritten. $this->client->setOption( Memcached::OPT_LIBKETAMA_COMPATIBLE, true ); diff --git a/maintenance/mcc.php b/maintenance/mcc.php index 7b7b761445..6b8487fb5c 100644 --- a/maintenance/mcc.php +++ b/maintenance/mcc.php @@ -35,7 +35,7 @@ if ( $help ) { mccShowUsage(); exit( 0 ); } -$mcc = new MWMemcached( array( +$mcc = new MemcachedClient( array( 'persistent' => true, 'debug' => $debug, ) ); -- 2.20.1