Neos\Flow\Mvc\Routing\UriBuilder::build PHP Метод

build() публичный Метод

Builds the URI
public build ( array $arguments = [] ) : string
$arguments array optional URI arguments. Will be merged with $this->arguments with precedence to $arguments
Результат string The URI
    public function build(array $arguments = [])
    {
        $arguments = Arrays::arrayMergeRecursiveOverrule($this->arguments, $arguments);
        $arguments = $this->mergeArgumentsWithRequestArguments($arguments);
        $uri = $this->router->resolve($arguments);
        $this->lastArguments = $arguments;
        if (!$this->environment->isRewriteEnabled()) {
            $uri = 'index.php/' . $uri;
        }
        $httpRequest = $this->request->getHttpRequest();
        if ($this->createAbsoluteUri === true) {
            $uri = $httpRequest->getBaseUri() . $uri;
        } elseif (!$this->createRelativePaths) {
            $uri = $httpRequest->getScriptRequestPath() . $uri;
        }
        if ($this->section !== '') {
            $uri .= '#' . $this->section;
        }
        return $uri;
    }

Usage Example

 /**
  * @test
  */
 public function buildPrependsIndexFileIfRewriteUrlsIsOff()
 {
     $this->mockRouter->expects($this->once())->method('resolve')->will($this->returnValue('resolvedUri'));
     $mockEnvironment = $this->getMockBuilder(Utility\Environment::class)->disableOriginalConstructor()->setMethods(['isRewriteEnabled'])->getMock();
     $this->inject($this->uriBuilder, 'environment', $mockEnvironment);
     $expectedResult = 'index.php/resolvedUri';
     $actualResult = $this->uriBuilder->build();
     $this->assertEquals($expectedResult, $actualResult);
 }