From: Michael M Slusarz Date: Tue, 18 May 2010 20:01:52 +0000 (-0600) Subject: Allow memory caching to work for both sql and file backends X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=6c1ecdd0e43d4a8794399d74ceb6bb51d3871a44;p=horde.git Allow memory caching to work for both sql and file backends --- diff --git a/framework/Core/lib/Horde/Core/Binder/Cache.php b/framework/Core/lib/Horde/Core/Binder/Cache.php index ed6d1a863..a7e385042 100644 --- a/framework/Core/lib/Horde/Core/Binder/Cache.php +++ b/framework/Core/lib/Horde/Core/Binder/Cache.php @@ -20,38 +20,38 @@ class Horde_Core_Binder_Cache implements Horde_Injector_Binder } $logger = $injector->getInstance('Horde_Log_Logger'); + $params['logger'] = $logger; + + $base_params = $params; if (strcasecmp($driver, 'Memcache') === 0) { $params['memcache'] = $injector->getInstance('Horde_Memcache'); - } else { - if (strcasecmp($driver, 'Sql') === 0) { - $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base'); + } elseif (strcasecmp($driver, 'Sql') === 0) { + $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base'); + } + + if (!empty($GLOBALS['conf']['cache']['use_memorycache']) && + ((strcasecmp($driver, 'Sql') === 0) || + (strcasecmp($driver, 'File') === 0))) { + if (strcasecmp($GLOBALS['conf']['cache']['use_memorycache'], 'Memcache') === 0) { + $base_params['memcache'] = $injector->getInstance('Horde_Memcache'); } - if (!empty($params['use_memorycache'])) { - $params = array( - 'stack' => array( - array( - 'driver' => 'Memcache', - 'params' => array_merge($params, array( - 'logger' => $logger, - 'memcache' => $injector->getInstance('Horde_Memcache') - )) - ), - array( - 'driver' => $driver, - 'params' => array_merge($params, array( - 'logger' => $logger - )) - ) + $params = array( + 'stack' => array( + array( + 'driver' => $GLOBALS['conf']['cache']['use_memorycache'], + 'params' => $base_params + ), + array( + 'driver' => $driver, + 'params' => $params ) - ); - $driver = 'Stack'; - } + ) + ); + $driver = 'Stack'; } - $params['logger'] = $injector->getInstance('Horde_Log_Logger'); - return Horde_Cache::factory($driver, $params); } @@ -59,4 +59,5 @@ class Horde_Core_Binder_Cache implements Horde_Injector_Binder { return false; } + } diff --git a/horde/config/conf.xml b/horde/config/conf.xml index 0a17a14e2..0bbe5b9e4 100644 --- a/horde/config/conf.xml +++ b/horde/config/conf.xml @@ -1036,9 +1036,9 @@ file - - - + + eAccelerator must be built with --with-eaccelerator-shared-memory at @@ -1048,9 +1048,7 @@ lower. - - - + @@ -1064,25 +1062,27 @@ use for the cache files."/> - + + - - - - - - - + + + + + + + + + +