public function parse(array $segments, array $data = null, array $params = null): string
    {
        // If data was passed but no params
        if (null === $params && null !== $data) {
            throw new InvalidArgumentException(
                'Route params are required when supplying data'
            );
        }

        $path         = '';
        $replace      = [];
        $replacements = [];

        // If there is data, parse the replacements
        if (null !== $data) {
            $this->parseData(
                $segments,
                $data,
                $params,
                $replace,
                $replacements
            );
        }

        // Iterate through the segments
        foreach ($segments as $index => $segment) {
            // No need to do replacements if there was no data
            if (null !== $data) {
                // Replace any parameters
                $segment = str_replace($replace, $replacements, $segment);
            }

            // If parameters were replaced or none to begin with
            if (strpos($segment, '{') === false) {
                // Append this segment
                $path .= $segment;
            }
        }

        return $path;
    }
public function parse(array $segments, array $data = null, array $params = null): string
    {
        // If data was passed but no params
        if (null === $params && null !== $data) {
            throw new InvalidArgumentException(
                'Route params are required when supplying data'
            );
        }

        $path         = '';
        $replace      = [];
        $replacements = [];

        // If there is data, parse the replacements
        if (null !== $data) {
            $this->parseData(
                $segments,
                $data,
                $params,
                $replace,
                $replacements
            );
        }

        // Iterate through the segments
        foreach ($segments as $index => $segment) {
            // No need to do replacements if there was no data
            if (null !== $data) {
                // Replace any parameters
                $segment = str_replace($replace, $replacements, $segment);
            }

            // If parameters were replaced or none to begin with
            if (strpos($segment, '{') === false) {
                // Append this segment
                $path .= $segment;
            }
        }

        return $path;
    }
public function parse ( array $ segments , array $ data = null , array $ params = null ) : string { // If data was passed but no params if ( null === $ params && null !== $ data ) { throw new InvalidArgumentException ( 'Route params are required when supplying data' ) ; } $ path = '' ; $ replace = [ ] ; $ replacements = [ ] ; // If there is data, parse the replacements if ( null !== $ data ) { $ this -> parseData ( $ segments , $ data , $ params , $ replace , $ replacements ) ; } // Iterate through the segments foreach ( $ segments as $ index => $ segment ) { // No need to do replacements if there was no data if ( null !== $ data ) { // Replace any parameters $ segment = str_replace ( $ replace , $ replacements , $ segment ) ; } // If parameters were replaced or none to begin with if ( strpos ( $ segment , '{' ) === false ) { // Append this segment $ path .= $ segment ; } } return $ path ; }
Parse segments, data, and params into a path.

@param array $segments The segments
@param array $data     [optional] The data
@param array $params   [optional] The params

@throws \InvalidArgumentException

@return string
Parse segments data and params into a path .