/** @internal */ private function findCachedUri($path, $filter, $absolute, $generate = false) { if ($this->skip($path, $filter)) { return $path; } $assetsHost = !$generate; $path = ltrim($path, '/'); $name = '_imagine_' . $filter . $this->params->getRouteSuffix($assetsHost); $uri = $this->params->generateUrl($name, ['path' => $path], $absolute); $prefix = preg_quote($this->params->getCachePrefix($assetsHost), '#'); if ($assetsHost) { $pattern = sprintf('#^((?:[a-z]+:)?//.*?)?(?:/\\w+[.]php)?(/%s.*?)$#i', $prefix); if (preg_match($pattern, $uri, $m)) { $uri = $m[1] . $m[2]; } } elseif (!empty($this->defaultFrontController)) { $pattern = sprintf('#^((?:[a-z]+:)?//.*?)?(/\\w+[.]php)?(/%s.*?)$#i', $prefix); if (preg_match($pattern, $uri, $m)) { empty($m[2]) && ($uri = $m[1] . '/' . $this->defaultFrontController . $m[3]); } } return str_replace(urlencode($path), $path, $uri); }