[ticket/10110] Enable the serialization and add a constant for

defined the database

PHPBB3-10110
This commit is contained in:
Eric 2011-03-29 15:54:28 +08:00 committed by Igor Wiedler
parent f18d93756c
commit 9891f5a8d2
2 changed files with 22 additions and 11 deletions

View file

@ -243,6 +243,7 @@ PHPBB_ACM_MEMCACHE_HOST (overwrite memcached host name, default is localhost
PHPBB_ACM_REDIS_HOST (overwrite redis host name, default is localhost) PHPBB_ACM_REDIS_HOST (overwrite redis host name, default is localhost)
PHPBB_ACM_REDIS_PORT (overwrite redis port, default is 6379) PHPBB_ACM_REDIS_PORT (overwrite redis port, default is 6379)
PHPBB_ACM_REDIS_PASSWORD (overwrite redis password, default is empty) PHPBB_ACM_REDIS_PASSWORD (overwrite redis password, default is empty)
PHPBB_ACM_REDIS_DB (overwrite redis default database)
PHPBB_QA (Set board to QA-Mode, which means the updater also checks for RC-releases) PHPBB_QA (Set board to QA-Mode, which means the updater also checks for RC-releases)
</pre></div> </pre></div>

View file

@ -56,15 +56,10 @@ class acm extends acm_memory
// Call the parent constructor // Call the parent constructor
parent::acm_memory(); parent::acm_memory();
if (!extension_loaded('redis'))
{
trigger_error("Could not find required extension [{$this->extension}] for the ACM module $acm_type.", E_USER_ERROR);
}
$this->redis = new Redis(); $this->redis = new Redis();
foreach (explode(',', PHPBB_ACM_REDIS) as $u) foreach (explode(',', PHPBB_ACM_REDIS) as $server)
{ {
$parts = explode('/', $u); $parts = explode('/', $server);
$this->redis->connect(trim($parts[0]), trim($parts[1])); $this->redis->connect(trim($parts[0]), trim($parts[1]));
} }
@ -72,9 +67,24 @@ class acm extends acm_memory
{ {
if (!$this->redis->auth(PHPBB_ACM_REDIS_PASSWORD)) if (!$this->redis->auth(PHPBB_ACM_REDIS_PASSWORD))
{ {
global $acm_type;
trigger_error("Incorrect password for the ACM module $acm_type.", E_USER_ERROR); trigger_error("Incorrect password for the ACM module $acm_type.", E_USER_ERROR);
} }
} }
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
$this->redis->setOption(Redis::OPT_PREFIX, $this->key_prefix);
if (defined('PHPBB_ACM_REDIS_DB'))
{
if (!$this->redis->select(PHPBB_ACM_REDIS_DB))
{
global $acm_type;
trigger_error("Incorrect database for the ACM module $acm_type.", E_USER_ERROR);
}
}
} }
/** /**
@ -110,7 +120,7 @@ class acm extends acm_memory
*/ */
function _read($var) function _read($var)
{ {
return $this->redis->get($this->key_prefix . $var); return $this->redis->get($var);
} }
/** /**
@ -124,7 +134,7 @@ class acm extends acm_memory
*/ */
function _write($var, $data, $ttl = 2592000) function _write($var, $data, $ttl = 2592000)
{ {
return $this->redis->setex($this->key_prefix . $var, $ttl, $data); return $this->redis->setex($var, $ttl, $data);
} }
/** /**
@ -136,7 +146,7 @@ class acm extends acm_memory
*/ */
function _delete($var) function _delete($var)
{ {
if ($this->redis->delete($this->key_prefix . $var) > 0) if ($this->redis->delete($var) > 0)
{ {
return true; return true;
} }