Hallo zusammen,
im Rahmen einer sehr umfangreichen Extension möchte ich in Typo3 6.2 und Extbase/Fluid das Caching nutzen.
/**
* Constructor
*/
public function __construct() {
$this->initializeCache();
}
/**
* Initialize cache instance to be ready to use
*
* @return void
*/
protected function initializeCache() {
\TYPO3\CMS\Core\Cache\Cache::initializeCachingFramework();
$this->cacheInstance = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager')->getCache('hbm_cache');
}
public function listAction(\PCON\Hbm\Domain\Model\Demand $demand = NULL) {
$cacheIdentifier = sha1('hbm_cache_' . $demand->getUid(). $GLOBALS["TSFE"]->id);
if ($this->cacheInstance->has($cacheIdentifier)) { //This always results to false
$content = $this->cacheInstance->get($cacheIdentifier);
return $content;
} else {
//Generate new Content
....
$rendering = $this->view->render();
$this->cacheInstance->set($cacheIdentifier,$rendering);
}
}
Grundsätzlich funktioniert dies auch (denke ich zumindest).
Das derzeitige Problem ist jedoch, dass alle dynamischen Elemente (Paginator, Demand Search etc.) wie auch alle AJAX Requests (obwohl diese in der TS vom Caching ausgenommen sind) nicht mehr funktionieren.
Da es das erste Mal ist, dass ich mich mit Caching befasse stehe ich noch absolut am Anfang.
Welche Elemente müssen in den CacheIdentifier eingebaut werden, damit die Seite grundsätzlich gecached wird, jedoch bei einer speziellen Suchabfrage bzw. wenn man auf die 2. Seite im Paginator klickt neu zusammengebaut wird?
LG Jürgen