Neos\Flow\Mvc\DispatchComponent::handle PHP Метод

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

Create an action request from stored route match values and dispatch to that
public handle ( ComponentContext $componentContext ) : void
$componentContext Neos\Flow\Http\Component\ComponentContext
Результат void
    public function handle(ComponentContext $componentContext)
    {
        $httpRequest = $componentContext->getHttpRequest();
        /** @var $actionRequest ActionRequest */
        $actionRequest = $this->objectManager->get(ActionRequest::class, $httpRequest);
        $this->securityContext->setRequest($actionRequest);
        $routingMatchResults = $componentContext->getParameter(Routing\RoutingComponent::class, 'matchResults');
        $actionRequest->setArguments($this->mergeArguments($httpRequest, $routingMatchResults));
        $this->setDefaultControllerAndActionNameIfNoneSpecified($actionRequest);
        $componentContext->setParameter(self::class, 'actionRequest', $actionRequest);
        $this->dispatcher->dispatch($actionRequest, $componentContext->getHttpResponse());
    }

Usage Example

 /**
  * @test
  */
 public function handleMergesInternalArgumentsWithRoutingMatchResults()
 {
     $this->mockHttpRequest->expects($this->any())->method('getArguments')->will($this->returnValue(['__internalArgument1' => 'request', '__internalArgument2' => 'request', '__internalArgument3' => 'request']));
     $this->mockHttpRequest->expects(self::any())->method('getContent')->willReturn('requestBody');
     $this->mockPropertyMapper->expects($this->any())->method('convert')->will($this->returnValue(['__internalArgument2' => 'requestBody', '__internalArgument3' => 'requestBody']));
     $this->mockComponentContext->expects($this->atLeastOnce())->method('getParameter')->with(RoutingComponent::class, 'matchResults')->will($this->returnValue(['__internalArgument3' => 'routing']));
     $this->mockActionRequest->expects($this->once())->method('setArguments')->with(['__internalArgument1' => 'request', '__internalArgument2' => 'requestBody', '__internalArgument3' => 'routing']);
     $this->dispatchComponent->handle($this->mockComponentContext);
 }