private function patternToPath($pattern, $params)
    {
        // Inspired by https://github.com/nikic/FastRoute/issues/66
        // but uses named params, don't care param order and size
        $routeParser = new RouteParserStd;
        $routes = $routeParser->parse($pattern);

        // check from the longest route to the shortest route
        // first (longest) full match is the route we need
        for ($i = count($routes) - 1; $i >= 0; $i--) {
            $url = '';
            foreach ($routes[$i] as $part) {
                // replace placeholder to actual value
                if (is_array($part)) {
                    $part = @$params[$part[0]];
                }

                // if route contains part not defined in $params, abandan this route
                if (null === $part) {
                    continue 2;
                }
                $url .= $part;
            }

            // first full match, this is our hero url
            return $url;
        }

        // no full match, throw Exception
        throw new \Exception(sprintf("Can't make path for '%s' with param: %s.", $pattern, json_encode($params)));
    }
private function patternToPath($pattern, $params)
    {
        // Inspired by https://github.com/nikic/FastRoute/issues/66
        // but uses named params, don't care param order and size
        $routeParser = new RouteParserStd;
        $routes = $routeParser->parse($pattern);

        // check from the longest route to the shortest route
        // first (longest) full match is the route we need
        for ($i = count($routes) - 1; $i >= 0; $i--) {
            $url = '';
            foreach ($routes[$i] as $part) {
                // replace placeholder to actual value
                if (is_array($part)) {
                    $part = @$params[$part[0]];
                }

                // if route contains part not defined in $params, abandan this route
                if (null === $part) {
                    continue 2;
                }
                $url .= $part;
            }

            // first full match, this is our hero url
            return $url;
        }

        // no full match, throw Exception
        throw new \Exception(sprintf("Can't make path for '%s' with param: %s.", $pattern, json_encode($params)));
    }
private function patternToPath ( $ pattern , $ params ) { // Inspired by https://github.com/nikic/FastRoute/issues/66 // but uses named params, don't care param order and size $ routeParser = new RouteParserStd ; $ routes = $ routeParser -> parse ( $ pattern ) ; // check from the longest route to the shortest route // first (longest) full match is the route we need for ( $ i = count ( $ routes ) - 1 ; $ i >= 0 ; $ i -- ) { $ url = '' ; foreach ( $ routes [ $ i ] as $ part ) { // replace placeholder to actual value if ( is_array ( $ part ) ) { $ part = @ $ params [ $ part [ 0 ] ] ; } // if route contains part not defined in $params, abandan this route if ( null === $ part ) { continue 2 ; } $ url .= $ part ; } // first full match, this is our hero url return $ url ; } // no full match, throw Exception throw new \ Exception ( sprintf ( "Can't make path for '%s' with param: %s." , $ pattern , json_encode ( $ params ) ) ) ; }
Convert url pattern to actual path
Convert url pattern to actual path