[-] BO : Fix bug #PSCFI-6902 fatal error when memcache not installed and Memcached previously activated

This commit is contained in:
gRoussac
2013-01-30 16:28:11 +01:00
parent bf9b1de873
commit d74f9c837b
3 changed files with 88 additions and 74 deletions
+28 -22
View File
@@ -46,26 +46,28 @@ class CacheMemcacheCore extends Cache
// Get keys (this code comes from Doctrine 2 project)
$this->keys = array();
$all_slabs = $this->memcache->getExtendedStats('slabs');
foreach ($all_slabs as $server => $slabs)
{
if (is_array($slabs))
{
foreach (array_keys($slabs) as $slab_id)
{
$dump = $this->memcache->getExtendedStats('cachedump', (int)$slab_id);
if ($dump)
{
foreach ($dump as $entries)
{
if ($entries)
$this->keys = array_merge($this->keys, array_keys($entries));
}
}
}
}
}
$servers = self::getMemcachedServers();
if(is_array($servers) && count($servers) > 0)
$all_slabs = $this->memcache->getExtendedStats('slabs');
if(isset($all_slabs) && is_array($all_slabs))
foreach ($all_slabs as $server => $slabs)
{
if (is_array($slabs))
{
foreach (array_keys($slabs) as $slab_id)
{
$dump = $this->memcache->getExtendedStats('cachedump', (int)$slab_id);
if ($dump)
{
foreach ($dump as $entries)
{
if ($entries)
$this->keys = array_merge($this->keys, array_keys($entries));
}
}
}
}
}
}
public function __destruct()
@@ -78,8 +80,12 @@ class CacheMemcacheCore extends Cache
*/
public function connect()
{
$this->memcache = new Memcache();
$servers = CacheMemcache::getMemcachedServers();
if (class_exists('Memcache') && extension_loaded('memcache'))
$this->memcache = new Memcache();
else
return false;
$servers = self::getMemcachedServers();
if (!$servers)
return false;
foreach ($servers as $server)