/** * Replace route path parameter placeholder with regex. * @param string $routePath * @param string $parameterName * @param \Brickoo\Component\Routing\Route\Route $route * @return string */ private function replaceRoutePathParameter($routePath, $parameterName, Route $route) { $template = $this->getRoutePathRegexTemplates($routePath, $parameterName); if (!$route->hasRule($parameterName)) { return str_replace(sprintf($template[self::TEMPLATE_REPLACE_KEY], $parameterName), sprintf($template[self::TEMPLATE_ANY_VALUE_KEY], $parameterName), $routePath); } return str_replace(sprintf($template[self::TEMPLATE_REPLACE_KEY], $parameterName), $route->hasDefaultValue($parameterName) ? sprintf($template[self::TEMPLATE_OPTIONAL_KEY], $parameterName, $route->getRule($parameterName)) : sprintf($template[self::TEMPLATE_REQUIRED_KEY], $parameterName, $route->getRule($parameterName)), $routePath); }