/** * 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); } } } }
/** * 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())); } }