DmitryDulepov\Realurl\Encoder\UrlEncoder::storeInUrlCache PHP Method

storeInUrlCache() protected method

Stores data in the URL cache.
protected storeInUrlCache ( ) : void
return void
    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);
            }
        }
    }