Neos.Neos/Classes/Routing/FrontendNodeRoutePartHandler.php
protected function getRelativeNodePathByUriPathSegmentProperties(NodeInterface $siteNode, $relativeRequestPath)
    {
        $relativeNodePathSegments = [];
        $node = $siteNode;

        foreach (explode('/', $relativeRequestPath) as $pathSegment) {
            $foundNodeInThisSegment = false;
            foreach ($node->getChildNodes('Neos.Neos:Document') as $node) {
                /** @var NodeInterface $node */
                if ($node->getProperty('uriPathSegment') === $pathSegment) {
                    $relativeNodePathSegments[] = $node->getName();
                    $foundNodeInThisSegment = true;
                    break;
                }
            }
            if (!$foundNodeInThisSegment) {
                return false;
            }
        }

        return implode('/', $relativeNodePathSegments);
    }
protected function getRelativeNodePathByUriPathSegmentProperties(NodeInterface $siteNode, $relativeRequestPath)
    {
        $relativeNodePathSegments = [];
        $node = $siteNode;

        foreach (explode('/', $relativeRequestPath) as $pathSegment) {
            $foundNodeInThisSegment = false;
            foreach ($node->getChildNodes('Neos.Neos:Document') as $node) {
                /** @var NodeInterface $node */
                if ($node->getProperty('uriPathSegment') === $pathSegment) {
                    $relativeNodePathSegments[] = $node->getName();
                    $foundNodeInThisSegment = true;
                    break;
                }
            }
            if (!$foundNodeInThisSegment) {
                return false;
            }
        }

        return implode('/', $relativeNodePathSegments);
    }
protected function getRelativeNodePathByUriPathSegmentProperties ( NodeInterface $ siteNode , $ relativeRequestPath ) { $ relativeNodePathSegments = [ ] ; $ node = $ siteNode ; foreach ( explode ( '/' , $ relativeRequestPath ) as $ pathSegment ) { $ foundNodeInThisSegment = false ; foreach ( $ node -> getChildNodes ( 'Neos.Neos:Document' ) as $ node ) { /** @var NodeInterface $node */ if ( $ node -> getProperty ( 'uriPathSegment' ) === $ pathSegment ) { $ relativeNodePathSegments [ ] = $ node -> getName ( ) ; $ foundNodeInThisSegment = true ; break ; } } if ( ! $ foundNodeInThisSegment ) { return false ; } } return implode ( '/' , $ relativeNodePathSegments ) ; }
Builds a node path which matches the given request path.

This method traverses the segments of the given request path and tries to find nodes on the current level which
have a matching "uriPathSegment" property. If no node could be found which would match the given request path,
false is returned.

@param NodeInterface $siteNode The site node, used as a starting point while traversing the tree
@param string $relativeRequestPath The request path, relative to the site's root path
@throws \Neos\Neos\Routing\Exception\NoSuchNodeException
@return string
Builds a node path which matches the given request path .