summaryrefslogtreecommitdiff
path: root/adodb-memcache.lib.inc.php
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2022-03-20 12:42:17 +0100
committerDamien Regad <dregad@mantisbt.org>2022-03-30 10:38:22 +0200
commit959ba32e29a169395a58a6b95a991e91919543b9 (patch)
treec893c2f92114ee64594f53dd41c11598ff01274b /adodb-memcache.lib.inc.php
parent88aa5d0f75d9888b6b6ce60f75cfdeb35427b136 (diff)
downloadadodb-959ba32e29a169395a58a6b95a991e91919543b9.tar.gz
adodb-959ba32e29a169395a58a6b95a991e91919543b9.tar.bz2
adodb-959ba32e29a169395a58a6b95a991e91919543b9.zip
Whitespace, coding guidelines
Diffstat (limited to 'adodb-memcache.lib.inc.php')
-rw-r--r--adodb-memcache.lib.inc.php393
1 files changed, 184 insertions, 209 deletions
diff --git a/adodb-memcache.lib.inc.php b/adodb-memcache.lib.inc.php
index 1e0f321b..0ea45c84 100644
--- a/adodb-memcache.lib.inc.php
+++ b/adodb-memcache.lib.inc.php
@@ -26,15 +26,16 @@ global $ADODB_INCLUDED_MEMCACHE;
$ADODB_INCLUDED_MEMCACHE = 1;
global $ADODB_INCLUDED_CSV;
-if (empty($ADODB_INCLUDED_CSV))
- include_once(ADODB_DIR.'/adodb-csvlib.inc.php');
+if (empty($ADODB_INCLUDED_CSV)) {
+ include_once(ADODB_DIR . '/adodb-csvlib.inc.php');
+}
-class ADODB_Cache_MemCache
+class ADODB_Cache_MemCache
{
/*
* Prevents parent class calling non-existant function
*/
- public $createdir = false;
+ public $createdir = false;
/*
* populated with the proper library on connect
@@ -42,284 +43,247 @@ class ADODB_Cache_MemCache
* between memcache and memcached
*/
private $memCacheLibrary = false;
-
+
/*
* array of hosts
*/
- private $hosts;
-
+ private $hosts;
+
/*
* Connection Port, uses default
*/
- private $port = 11211;
-
+ private $port = 11211;
+
/*
* memcache compression with zlib
*/
- private $compress = false;
+ private $compress = false;
/*
* Array of options for memcached only
*/
private $options = false;
-
+
/*
* Internal flag indicating successful connection
*/
private $isConnected = false;
-
+
/*
* Handle for the Memcache library
*/
private $memcacheLibrary = false;
-
+
/*
* New server feature controller lists available servers
*/
private $serverControllers = array();
-
+
/*
* New server feature controller uses granular
* server controller
*/
private $serverControllerTemplate = array(
- 'host'=>'',
- 'port'=>11211,
- 'weight'=>0,
- 'key'=>''
- );
+ 'host' => '',
+ 'port' => 11211,
+ 'weight' => 0,
+ 'key' => ''
+ );
+
-
/*
* An integer index into the libraries
*/
- const MCLIB = 1;
+ const MCLIB = 1;
const MCLIBD = 2;
-
+
/*
* Xrefs the library flag to the actual class name
*/
private $libraries = array(
- 1=>'Memcache',
- 2=>'Memcached'
- );
-
+ 1 => 'Memcache',
+ 2 => 'Memcached'
+ );
+
/*
* An indicator of which library we are using
*/
private $libraryFlag;
-
+
/**
- * constructor passes in a ADONewConnection Object
- *
- * @param $db ADONewConnection object
- *
- * @return obj
- */
+ * constructor passes in a ADONewConnection Object
+ *
+ * @param $db ADONewConnection object
+ *
+ * @return obj
+ */
public function __construct(&$db)
{
- $this->hosts = $db->memCacheHost;
- $this->port = $db->memCachePort;
+ $this->hosts = $db->memCacheHost;
+ $this->port = $db->memCachePort;
$this->compress = $db->memCacheCompress;
- $this->options = $db->memCacheOptions;
-
+ $this->options = $db->memCacheOptions;
}
/**
- * implement as lazy connection. The connection only occurs on CacheExecute call
- *
- * @param string $err
- *
- * @return bool success of connecting to a server
- */
+ * implement as lazy connection. The connection only occurs on CacheExecute call
+ *
+ * @param string $err
+ *
+ * @return bool success of connecting to a server
+ */
public function connect(&$err)
{
- /*
- * do we have memcache or memcached? see the note
- * at adodb.org on memcache
- */
- if (class_exists('Memcache'))
+ // do we have memcache or memcached? see the note at adodb.org on memcache
+ if (class_exists('Memcache')) {
$this->libraryFlag = self::MCLIB;
- elseif (class_exists('Memcached'))
+ } elseif (class_exists('Memcached')) {
$this->libraryFlag = self::MCLIBD;
- else
- {
+ } else {
$err = 'Neither the Memcache nor Memcached PECL extensions were found!';
return false;
}
-
+
$usedLibrary = $this->libraries[$this->libraryFlag];
-
+
$memCache = new $usedLibrary;
- if (!$memCache)
- {
+ if (!$memCache) {
$err = 'Memcache library failed to initialize';
return false;
}
-
- /*
- * Convert simple compression flag for memcached
- */
- if ($this->libraryFlag == self::MCLIBD && $this->compress)
- {
- /*
- * Value of Memcached::OPT_COMPRESSION = 2;
- */
+
+ // Convert simple compression flag for memcached
+ if ($this->libraryFlag == self::MCLIBD && $this->compress) {
+ // Value of Memcached::OPT_COMPRESSION = 2;
$this->options[2] == 1;
}
- /*
- * Are there any options available for memcached
- */
- if ($this->libraryFlag == self::MCLIBD && count($this->options) > 0)
- {
+
+ // Are there any options available for memcached
+ if ($this->libraryFlag == self::MCLIBD && count($this->options) > 0) {
$optionSuccess = $memCache->setOptions($this->options);
- if (!$optionSuccess)
- {
- $err = 'Invalid option parameters passed to Memecached';
+ if (!$optionSuccess) {
+ $err = 'Invalid option parameters passed to Memcached';
return false;
}
}
-
- /*
- * Have we passed a controller array
- */
- if (!is_array($this->hosts))
+
+ // Have we passed a controller array
+ if (!is_array($this->hosts)) {
$this->hosts = array($this->hosts);
-
- if (array_values($this->hosts) == $this->hosts)
- {
- /*
- * Old way, convert to controller
- */
- foreach ($this->hosts as $ipAddress)
- {
+ }
+
+ if (array_values($this->hosts) == $this->hosts) {
+ // Old way, convert to controller
+ foreach ($this->hosts as $ipAddress) {
$connector = $this->serverControllerTemplate;
-
+
$connector['host'] = $ipAddress;
$connector['port'] = $this->port;
-
+
$this->serverControllers[] = $connector;
}
- }
- else
- {
- /*
- * New way, must validate port, etc
- */
- foreach ($this->hosts as $controller)
- {
- $connector = array_merge($this->serverControllerTemplate,$controller);
- if ($this->libraryFlag == self::MCLIB)
- {
- /*
- * Cannot use a key or weight in memcache, simply discard
- */
+ } else {
+ // New way, must validate port, etc
+ foreach ($this->hosts as $controller) {
+ $connector = array_merge($this->serverControllerTemplate, $controller);
+ if ($this->libraryFlag == self::MCLIB) {
+ // Cannot use a key or weight in memcache, simply discard
$connector['key'] = '';
$connector['weight'] = 0;
-
+ } else {
+ $connector['weight'] = $connector['weight'] ? (int)$connector['weight'] : 0;
}
- else
- $connector['weight'] = $connector['weight'] ? (int)$connector['weight']:0;
-
+
$this->serverControllers[] = $connector;
}
}
- /*
- * Checks for existing connections ( but only for memcached )
- */
- if ($this->libraryFlag == self::MCLIBD)
- {
+ // Checks for existing connections ( but only for memcached )
+ if ($this->libraryFlag == self::MCLIBD) {
$existingServers = $memCache->getServerList();
- if (is_array($existingServers))
- {
- /*
- * Use the existing configuration
- */
+ if (is_array($existingServers)) {
+ // Use the existing configuration
$this->isConnected = true;
$this->memcacheLibrary = $memCache;
return true;
}
}
$failcnt = 0;
- foreach($this->serverControllers as $controller)
- {
- switch($this->libraryFlag)
- {
+ foreach ($this->serverControllers as $controller) {
+ switch ($this->libraryFlag) {
case self::MCLIB:
- if (!@$memCache->addServer($controller['host'],$controller['port']))
- $failcnt++;
- break;
+ if (!@$memCache->addServer($controller['host'], $controller['port'])) {
+ $failcnt++;
+ }
+ break;
default:
- if (!@$memCache->addServer($controller['host'],$controller['port'],$controller['weight']))
- $failcnt++;
+ if (!@$memCache->addServer($controller['host'], $controller['port'], $controller['weight'])) {
+ $failcnt++;
+ }
}
-
}
- if ($failcnt == sizeof($this->serverControllers))
- {
+ if ($failcnt == sizeof($this->serverControllers)) {
$err = 'Can\'t connect to any memcache server';
return false;
-
}
-
+
$this->memcacheLibrary = $memCache;
- /*
- * A valid memcache connection is available
- */
+ // A valid memcache connection is available
$this->isConnected = true;
return true;
}
/**
- * Writes a cached query to the server
- *
- * @param string $filename The MD5 of the query to cache
- * @param string $contents The query results
- * @param bool $debug
- * @param int $secs2cache
- *
- * @return bool true or false. true if successful save
- */
+ * Writes a cached query to the server
+ *
+ * @param string $filename The MD5 of the query to cache
+ * @param string $contents The query results
+ * @param bool $debug
+ * @param int $secs2cache
+ *
+ * @return bool true or false. true if successful save
+ */
public function writeCache($filename, $contents, $debug, $secs2cache)
{
$err = '';
- if (!$this->isConnected && $debug)
- {
- /*
- * Call to writecache before connect, try
- * to connect
- */
- if (!$this->connect($err))
+ if (!$this->isConnected && $debug) {
+ // Call to writecache before connect, try to connect
+ if (!$this->connect($err)) {
ADOConnection::outp($err);
+ }
+ } else {
+ if (!$this->isConnected) {
+ $this->connect($err);
+ }
}
- else if (!$this->isConnected)
- $this->connect($err);
-
- if (!$this->memcacheLibrary)
+
+ if (!$this->memcacheLibrary) {
return false;
+ }
- $failed=false;
- switch ($this->libraryFlag)
- {
+ $failed = false;
+ switch ($this->libraryFlag) {
case self::MCLIB:
- if (!$this->memcacheLibrary->set($filename, $contents, $this->compress ? MEMCACHE_COMPRESSED : 0, $secs2cache)) {
- $failed=true;
+ if (!$this->memcacheLibrary->set($filename, $contents, $this->compress ? MEMCACHE_COMPRESSED : 0,
+ $secs2cache)) {
+ $failed = true;
}
break;
case self::MCLIBD:
if (!$this->memcacheLibrary->set($filename, $contents, $secs2cache)) {
- $failed=true;
+ $failed = true;
}
break;
default:
- $failed=true;
+ $failed = true;
break;
}
- if($failed) {
- if ($debug) ADOConnection::outp(" Failed to save data at the memcache server!<br>\n");
+ if ($failed) {
+ if ($debug) {
+ ADOConnection::outp(" Failed to save data at the memcache server!<br>\n");
+ }
return false;
}
@@ -327,24 +291,25 @@ class ADODB_Cache_MemCache
}
/**
- * Reads a cached query to the server
- *
- * @param string $filename The MD5 of the query to read
- * @param string $err The query results
- * @param int $secs2cache
- * @param obj $rsClass **UNUSED**
-
- * @return the record or false.
- */
+ * Reads a cached query to the server
+ *
+ * @param string $filename The MD5 of the query to read
+ * @param string $err The query results
+ * @param int $secs2cache
+ * @param obj $rsClass **UNUSED**
+ * @return the record or false.
+ */
public function readCache($filename, &$err, $secs2cache, $rsClass)
{
- if (!$this->isConnected) $this->connect($err);
- if (!$this->memcacheLibrary)
+ if (!$this->isConnected) {
+ $this->connect($err);
+ }
+ if (!$this->memcacheLibrary) {
return false;
+ }
$rs = $this->memcacheLibrary->get($filename);
- if (!$rs)
- {
+ if (!$rs) {
$err = 'Item with such key doesn\'t exist on the memcache server.';
return false;
}
@@ -354,18 +319,17 @@ class ADODB_Cache_MemCache
unset($rs[0]);
$rs = join("\n", $rs);
$rs = unserialize($rs);
- if (! is_object($rs)) {
+ if (!is_object($rs)) {
$err = 'Unable to unserialize $rs';
return $false;
}
- if ($rs->timeCreated == 0)
- return $rs; // apparently have been reports that timeCreated was set to 0 somewhere
+ if ($rs->timeCreated == 0) {
+ return $rs;
+ } // apparently have been reports that timeCreated was set to 0 somewhere
- $tdiff = intval($rs->timeCreated+$secs2cache - time());
- if ($tdiff <= 2)
- {
- switch($tdiff)
- {
+ $tdiff = intval($rs->timeCreated + $secs2cache - time());
+ if ($tdiff <= 2) {
+ switch ($tdiff) {
case 2:
if ((rand() & 15) == 0) {
$err = "Timeout 2";
@@ -387,55 +351,66 @@ class ADODB_Cache_MemCache
}
/**
- * Flushes all of the stored memcache data
- *
- * @param bool $debug
- *
- * @return int The response from the memcache server
- */
- public function flushAll($debug=false)
+ * Flushes all of the stored memcache data
+ *
+ * @param bool $debug
+ *
+ * @return int The response from the memcache server
+ */
+ public function flushAll($debug = false)
{
if (!$this->isConnected) {
$err = '';
- if (!$this->connect($err) && $debug) ADOConnection::outp($err);
+ if (!$this->connect($err) && $debug) {
+ ADOConnection::outp($err);
+ }
}
- if (!$this->memcacheLibrary)
+ if (!$this->memcacheLibrary) {
return false;
+ }
$del = $this->memcacheLibrary->flush();
- if ($debug)
- if (!$del)
+ if ($debug) {
+ if (!$del) {
ADOConnection::outp("flushall: failed!<br>\n");
- else
+ } else {
ADOConnection::outp("flushall: succeeded!<br>\n");
+ }
+ }
return $del;
}
/**
- * Flushes the contents of a specified query
- *
- * @param str $filname The MD5 of the query to flush
- * @param bool $debug
- *
- * @return int The response from the memcache server
- */
- public function flushCache($filename, $debug=false)
+ * Flushes the contents of a specified query
+ *
+ * @param str $filname The MD5 of the query to flush
+ * @param bool $debug
+ *
+ * @return int The response from the memcache server
+ */
+ public function flushCache($filename, $debug = false)
{
- if (!$this->isConnected)
- {
+ if (!$this->isConnected) {
$err = '';
- if (!$this->connect($err) && $debug) ADOConnection::outp($err);
+ if (!$this->connect($err) && $debug) {
+ ADOConnection::outp($err);
+ }
}
- if (!$this->memcacheLibrary)
+ if (!$this->memcacheLibrary) {
return false;
+ }
$del = $this->memcacheLibrary->delete($filename);
- if ($debug)
- if (!$del) ADOConnection::outp("flushcache: $key entry doesn't exist on memcache server!<br>\n");
- else ADOConnection::outp("flushcache: $key entry flushed from memcache server!<br>\n");
+ if ($debug) {
+ if (!$del) {
+ ADOConnection::outp("flushcache: $key entry doesn't exist on memcache server!<br>\n");
+ } else {
+ ADOConnection::outp("flushcache: $key entry flushed from memcache server!<br>\n");
+ }
+ }
return $del;
}