public function generateMetaTagKeyFromRelativePath($pathInfo, RouterInterface $router, $locale) { try { $info = $router->match($pathInfo); } catch (ResourceNotFoundException $e) { $info = false; } catch (MethodNotAllowedException $e) { $info = false; } if ($info !== false && strpos($info['_route'], RouteLoader::ROUTE_BEGIN) === 0) { // allready alias, get the base pathinfo $oldInfo = RouteLoader::getPathinfo($info['_route']); $oldRoute = $oldInfo['_route']; unset($oldInfo['_route']); $oldInfo[UrlGenerator::GENERATE_NORMAL_ROUTE] = true; $pathInfo = $router->generate($oldRoute, $oldInfo); $pathInfo = str_replace('/app_dev.php', '', $pathInfo); $pathInfo = preg_replace('!([^?]*)(\\?_locale=[^&]*)!', '$1', $pathInfo); } return $this->generateMetaTagKeyFromPathInfo($pathInfo, $locale); }
public function canonical($pathinfo, $uri = null) { if ($uri) { if (!$this->keyGenerator->isAddQueryString()) { //remove query string if ($pos = strpos($uri, '?')) { $uri = substr($uri, 0, $pos); } } //remove if rewrite not used $uri = str_replace('app_dev.php/', '', $uri); $uri = str_replace('app.php/', '', $uri); return $uri; } try { $infos = $this->router->match($pathinfo); } catch (ResourceNotFoundException $e) { $infos = false; } catch (MethodNotAllowedException $e) { $infos = false; } if ($infos === false) { return; } if (strpos($infos['_route'], RouteLoader::ROUTE_BEGIN) === 0) { $infos = RouteLoader::getPathinfo($infos['_route']); } $route = $infos['_route']; unset($infos['_route']); unset($infos['_controller']); return $this->router->generate($route, $infos, true); }