protected function storeInUrlCache()
{
if ($this->canCacheUrl($this->originalUrl)) {
$cacheEntry = $this->cache->getUrlFromCacheByOriginalUrl($this->rootPageId, $this->originalUrl);
/** @var \DmitryDulepov\Realurl\Cache\UrlCacheEntry $cacheEntry */
if ($cacheEntry && $cacheEntry->getExpiration() !== 0 && $cacheEntry->getSpeakingUrl() === $this->encodedUrl) {
// Unexpire
$cacheEntry->setExpiration(0);
} elseif (!$cacheEntry || $cacheEntry->getSpeakingUrl() !== $this->encodedUrl) {
$cacheEntry = GeneralUtility::makeInstance('DmitryDulepov\\Realurl\\Cache\\UrlCacheEntry');
$cacheEntry->setPageId($this->urlParameters['id']);
// $this->originalUrlParameters['id'] can be an alias, we need a number here!
$cacheEntry->setRequestVariables($this->removeIgnoredUrlParametersFromArray($this->originalUrlParameters));
$cacheEntry->setRootPageId($this->rootPageId);
$cacheEntry->setOriginalUrl($this->originalUrl);
$cacheEntry->setSpeakingUrl($this->encodedUrl);
}
$this->cache->putUrlToCache($cacheEntry);
$cacheId = $cacheEntry->getCacheId();
if (!empty($cacheId)) {
$this->storeAliasToUrlCacheMapping($cacheId);
}
}
}