/**
  * Flush caches according to the previously registered node changes.
  *
  * @return void
  */
 public function shutdownObject()
 {
     if ($this->tagsToFlush !== array()) {
         foreach ($this->tagsToFlush as $tag => $logMessage) {
             $affectedEntries = $this->contentCache->flushByTag($tag);
             if ($affectedEntries > 0) {
                 $this->systemLogger->log(sprintf('Content cache: Removed %s entries %s', $affectedEntries, $logMessage), LOG_DEBUG);
             }
         }
     }
 }
示例#2
0
 /**
  * Render the node
  *
  * @return string
  */
 protected function renderContent(ControllerContext $controllerContext)
 {
     $this->contentCache->flushByTag(sprintf('Node_%s', $this->getNode()->getParent()->getIdentifier()));
     $parentDomAddress = $this->getParentDomAddress();
     $fusionView = new FusionView();
     $fusionView->setControllerContext($controllerContext);
     $fusionView->assign('value', $this->getNode()->getParent());
     $fusionView->setTypoScriptPath($parentDomAddress->getFusionPath());
     return $fusionView->render();
 }
 /**
  * @test
  */
 public function exceptionInAlreadyCachedSegmentShouldNotLeaveSegmentMarkersInOutput()
 {
     $object = new TestModel(42, 'Object value 1');
     $view = $this->buildView();
     $view->setOption('enableContentCache', true);
     $view->setTypoScriptPath('contentCache/nestedCacheSegmentsWithConditionalException');
     $view->assign('object', $object);
     $view->assign('throwException', false);
     $firstRenderResult = $view->render();
     $this->assertEquals('Cached segment|counter=1|It depends|End segment', $firstRenderResult);
     $this->contentCache->flushByTag('Inner');
     $view->assign('throwException', true);
     $secondRenderResult = $view->render();
     $this->assertStringStartsWith('Cached segment|counter=1|Exception', $secondRenderResult);
 }
 /**
  * @param LifecycleEventArgs $eventArgs
  * @return void
  */
 public function postUpdate(LifecycleEventArgs $eventArgs)
 {
     if ($eventArgs->getEntity() instanceof BadgeClass) {
         $this->contentCache->flushByTag('BadgeClass_' . $this->persistenceManager->getIdentifierByObject($eventArgs->getEntity()));
     }
 }