fix namespaces in stock PHP class \Memcache(d)

This commit is contained in:
Ralf Becker 2016-02-29 08:53:05 +00:00
parent d2e7c7da4d
commit 27c204cc7a
2 changed files with 18 additions and 18 deletions

View File

@ -54,10 +54,10 @@ class Memcache extends Base implements ProviderMultiple
* @throws Exception if connection to backend could not be established * @throws Exception if connection to backend could not be established
* @param array $params eg. array('localhost'[,'localhost:11211',...]) * @param array $params eg. array('localhost'[,'localhost:11211',...])
*/ */
function __construct(array $params) function __construct(array $params=null)
{ {
check_load_extension('memcache',true); check_load_extension('memcache',true);
$this->memcache = new Memcache(); $this->memcache = new \Memcache();
if (!$params) $params = array('localhost'); // some reasonable default if (!$params) $params = array('localhost'); // some reasonable default

View File

@ -79,24 +79,24 @@ class Memcached extends Base implements ProviderMultiple
check_load_extension('memcached',true); check_load_extension('memcached',true);
// using a persitent connection for identical $params // using a persitent connection for identical $params
$this->memcache = new Memcached(md5(serialize($params))); $this->memcache = new \Memcached(md5(serialize($params)));
$this->memcache->setOptions(array( $this->memcache->setOptions(array(
// setting a short timeout, to better kope with failed nodes // setting a short timeout, to better kope with failed nodes
Memcached::OPT_CONNECT_TIMEOUT => $this->timeout, \Memcached::OPT_CONNECT_TIMEOUT => $this->timeout,
Memcached::OPT_SEND_TIMEOUT => $this->timeout, \Memcached::OPT_SEND_TIMEOUT => $this->timeout,
Memcached::OPT_RECV_TIMEOUT => $this->timeout, \Memcached::OPT_RECV_TIMEOUT => $this->timeout,
// use igbinary, if available // use igbinary, if available
Memcached::OPT_SERIALIZER => Memcached::HAVE_IGBINARY ? Memcached::SERIALIZER_IGBINARY : Memcached::SERIALIZER_JSON, \Memcached::OPT_SERIALIZER => \Memcached::HAVE_IGBINARY ? \Memcached::SERIALIZER_IGBINARY : \Memcached::SERIALIZER_JSON,
// use more effician binary protocol (also required for consistent hashing // use more effician binary protocol (also required for consistent hashing
Memcached::OPT_BINARY_PROTOCOL => true, \Memcached::OPT_BINARY_PROTOCOL => true,
// enable Libketama compatible consistent hashing // enable Libketama compatible consistent hashing
Memcached::OPT_LIBKETAMA_COMPATIBLE => true, \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
// automatic failover and disabling of failed nodes // automatic failover and disabling of failed nodes
Memcached::OPT_SERVER_FAILURE_LIMIT => 2, \Memcached::OPT_SERVER_FAILURE_LIMIT => 2,
Memcached::OPT_AUTO_EJECT_HOSTS => true, \Memcached::OPT_AUTO_EJECT_HOSTS => true,
// setting a prefix for all keys // setting a prefix for all keys
Memcached::OPT_PREFIX_KEY => $prefix, \Memcached::OPT_PREFIX_KEY => $prefix,
)); ));
// with persistent connections, only add servers, if they not already added! // with persistent connections, only add servers, if they not already added!
@ -133,7 +133,7 @@ class Memcached extends Base implements ProviderMultiple
{ {
return $this->memcache->add(self::key($keys), $data, $expiration) || return $this->memcache->add(self::key($keys), $data, $expiration) ||
// if we have multiple nodes, retry on error, but not on data exists // if we have multiple nodes, retry on error, but not on data exists
$this->retry > 0 && $this->memcache->getResultCode() !== Memcached::RES_DATA_EXISTS && $this->retry > 0 && $this->memcache->getResultCode() !== \Memcached::RES_DATA_EXISTS &&
$this->memcache->add(self::key($keys), $data, $expiration); $this->memcache->add(self::key($keys), $data, $expiration);
} }
@ -161,11 +161,11 @@ class Memcached extends Base implements ProviderMultiple
function get(array $keys) function get(array $keys)
{ {
if (($data = $this->memcache->get($key=self::key($keys))) === false && if (($data = $this->memcache->get($key=self::key($keys))) === false &&
$this->memcache->getResultCode() !== Memcached::RES_SUCCESS || $this->memcache->getResultCode() !== \Memcached::RES_SUCCESS ||
// if we have multiple nodes, retry on error, but not on not found // if we have multiple nodes, retry on error, but not on not found
$this->retry > 1 && $this->memcache->getResultCode() !== Memcached::RES_NOTFOUND && $this->retry > 1 && $this->memcache->getResultCode() !== \Memcached::RES_NOTFOUND &&
($data = $this->memcache->get($key=self::key($keys))) === false && ($data = $this->memcache->get($key=self::key($keys))) === false &&
$this->memcache->getResultCode() !== Memcached::RES_SUCCESS) $this->memcache->getResultCode() !== \Memcached::RES_SUCCESS)
{ {
//error_log(__METHOD__."(".array2string($keys).") key='$key' NOT found!".' $this->memcache->getResultCode()='.$this->memcache->getResultCode().')'); //error_log(__METHOD__."(".array2string($keys).") key='$key' NOT found!".' $this->memcache->getResultCode()='.$this->memcache->getResultCode().')');
return null; return null;
@ -190,7 +190,7 @@ class Memcached extends Base implements ProviderMultiple
} }
if (($multiple = $this->memcache->getMulti($locations)) === false || if (($multiple = $this->memcache->getMulti($locations)) === false ||
// if we have multiple nodes, retry on error, but not on not found // if we have multiple nodes, retry on error, but not on not found
$this->retry > 1 && $this->memcache->getResultCode() !== Memcached::RES_NOTFOUND && $this->retry > 1 && $this->memcache->getResultCode() !== \Memcached::RES_NOTFOUND &&
($multiple = $this->memcache->getMulti($locations)) === false) ($multiple = $this->memcache->getMulti($locations)) === false)
{ {
return array(); return array();
@ -215,7 +215,7 @@ class Memcached extends Base implements ProviderMultiple
function delete(array $keys) function delete(array $keys)
{ {
return $this->memcache->delete(self::key($keys)) || return $this->memcache->delete(self::key($keys)) ||
$this->retry > 0 && $this->memcache->getResultCode() !== Memcached::RES_NOTFOUND && $this->retry > 0 && $this->memcache->getResultCode() !== \Memcached::RES_NOTFOUND &&
$this->memcache->delete(self::key($keys)); $this->memcache->delete(self::key($keys));
} }