Bug #23687
closedThrows Exception "Class does not exist" in Front- and Backend using memcache and caching-framework
0%
Description
Throws Exception when using TYPO3 > 4.4.2 with caching-framework and memchache.
Here are the localconfig settings:
$TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1';
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations'] = array(
'cache_pages' => array(
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
'cache_pagesection' => array(
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
'cache_hash' => array(
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
);
With TYPO3 4.4.2 source everything works fine. Change source to 4.4.3 or 4.4.4 and the error appears.
Using Linux with
PHP Version: 5.3.x
Memcache Version: 2.2.5
Uncaught TYPO3 Exception
Class does not exist
ReflectionException thrown in file
/path/to/source/typo3_src-4.4.4/t3lib/class.t3lib_div.php in line 5250.
9 ReflectionClass::__construct(NULL)
/path/to/source/typo3_src-4.4.4/t3lib/class.t3lib_div.php:
05248: array_shift($constructorArguments);
05249:
05250: $reflectedClass = new ReflectionClass($className);
05251: $instance = $reflectedClass->newInstanceArgs($constructorArguments);
05252: } else {
8 t3lib_div::makeInstance(NULL, "cache_pages", t3lib_cache_backend_MemcachedBackend)
/path/to/source/typo3_src-4.4.4/t3lib/cache/class.t3lib_cache_factory.php:
00103: }
00104:
00105: $cache = t3lib_div::makeInstance($cacheClassReference, $cacheIdentifier, $backend);
00106:
00107:
7 t3lib_cache_Factory::create("cache_pages", NULL, "t3lib_cache_backend_MemcachedBackend", array)
/path/to/source/typo3_src-4.4.4/t3lib/class.t3lib_cache.php:
00065: $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['backend'],
00066: $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['cache_pages']['options']
00067: );
00068: } catch(t3lib_cache_exception_DuplicateIdentifier $e) {
00069: // do nothing, a cache_pages cache already exists
6 t3lib_cache::initPageCache()
/path/to/source/typo3_src-4.4.4/typo3/sysext/cms/tslib/class.tslib_fe.php:
00618: );
00619: } catch(t3lib_cache_exception_NoSuchCache $e) {
00620: t3lib_cache::initPageCache();
00621:
00622: $this->pageCache = $GLOBALS['typo3CacheManager']->getCache(
5 tslib_fe::initCaches()
/path/to/source/typo3_src-4.4.4/typo3/sysext/cms/tslib/class.tslib_fe.php:
00464:
00465: if (TYPO3_UseCachingFramework) {
00466: $this->initCaches();
00467: }
00468: }
4 tslib_fe::tslib_fe(array, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
3 ReflectionClass::newInstanceArgs(array)
/path/to/source/typo3_src-4.4.4/t3lib/class.t3lib_div.php:
05249:
05250: $reflectedClass = new ReflectionClass($className);
05251: $instance = $reflectedClass->newInstanceArgs($constructorArguments);
05252: } else {
05253: $instance = new $className;
2 t3lib_div::makeInstance("tslib_fe", array, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
/path/to/source/typo3_src-4.4.4/typo3/sysext/cms/tslib/index_ts.php:
00211: t3lib_div::_GP('MP'),
00212: t3lib_div::_GP('RDCT')
00213: );
00214: /* @var $TSFE tslib_fe */
00215:
1 require("/path/to/source/typo3_src-4.4.4/typo3/sysext/cms/tslib/index_ts.php")
/var/www/vhosts/typo.ratgeber.immowelt.de/index.php:
00078: // **********
00079:
00080: require (PATH_tslib.'index_ts.php');
00081:
00082: ?>
(issue imported from #M15923)
Updated by Andy Weber about 14 years ago
SOLVED
Since 4.4.3 you need also to configure also the following paramter in the localconf:
'frontend'=> 't3lib_cache_frontend_VariableFrontend',
So you need to change the localconf setting to:
$TYPO3_CONF_VARS['SYS']['useCachingFramework'] = '1';
$TYPO3_CONF_VARS['SYS']['caching']['cacheConfigurations'] = array(
'cache_pages' => array(
'frontend'=> 't3lib_cache_frontend_VariableFrontend',
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
'cache_pagesection' => array(
'frontend' => 't3lib_cache_frontend_VariableFrontend',
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
'cache_hash' => array(
'frontend'=> 't3lib_cache_frontend_VariableFrontend',
'backend' => 't3lib_cache_backend_MemcachedBackend',
'options' => array(
'servers' => array('localhost:11211'),
),
),
);
And now it works again. I'll hope that will find the way into some documentation about the caching framework in TYPO3 4.5.
Updated by Steffen Kamper about 14 years ago
add following to all of your cache configs:
'frontend' => 't3lib_cache_frontend_VariableFrontend'
it was hardcoded before but then removed.
Documentation for cache framework is in the queue.