05. 05. 2015, 11:34

Hallo zusammen,

im Rahmen einer sehr umfangreichen Extension möchte ich in Typo3 6.2 und Extbase/Fluid das Caching nutzen.

  1. /**
  2.   * Constructor
  3.   */
  4. public function __construct() {
  5. $this->initializeCache();
  6. }
  7.  
  8. /**
  9.   * Initialize cache instance to be ready to use
  10.   *
  11.   * @return void
  12.   */
  13. protected function initializeCache() {
  14. \TYPO3\CMS\Core\Cache\Cache::initializeCachingFramework();
  15. $this->cacheInstance = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager')->getCache('hbm_cache');
  16.  
  17. }
  18.  
  19.  
  20. public function listAction(\PCON\Hbm\Domain\Model\Demand $demand = NULL) {
  21.  
  22. $cacheIdentifier = sha1('hbm_cache_' . $demand->getUid(). $GLOBALS["TSFE"]->id);
  23.  
  24. if ($this->cacheInstance->has($cacheIdentifier)) { //This always results to false
  25. $content = $this->cacheInstance->get($cacheIdentifier);
  26. return $content;
  27. } else {
  28.  
  29. //Generate new Content
  30. ....
  31. $rendering = $this->view->render();
  32. $this->cacheInstance->set($cacheIdentifier,$rendering);
  33. }
  34. }

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