/** * Create an action request from stored route match values and dispatch to that * * @param ComponentContext $componentContext * @return 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()); }
/** * Check if the current request contains a widget context. * If so dispatch it directly, otherwise continue with the next HTTP component. * * @param ComponentContext $componentContext * @return void * @throws ComponentException */ public function handle(ComponentContext $componentContext) { $httpRequest = $componentContext->getHttpRequest(); $widgetContext = $this->extractWidgetContext($httpRequest); if ($widgetContext === null) { return; } /** @var $actionRequest ActionRequest */ $actionRequest = $this->objectManager->get(\Neos\Flow\Mvc\ActionRequest::class, $httpRequest); $actionRequest->setArguments($this->mergeArguments($httpRequest, array())); $actionRequest->setArgument('__widgetContext', $widgetContext); $actionRequest->setControllerObjectName($widgetContext->getControllerObjectName()); $this->setDefaultControllerAndActionNameIfNoneSpecified($actionRequest); $this->securityContext->setRequest($actionRequest); $this->dispatcher->dispatch($actionRequest, $componentContext->getHttpResponse()); // stop processing the current component chain $componentContext->setParameter(\Neos\Flow\Http\Component\ComponentChain::class, 'cancel', true); }
/** * Just call makeStandardsCompliant on the Response for now * * @param ComponentContext $componentContext * @return void */ public function handle(ComponentContext $componentContext) { $response = $componentContext->getHttpResponse(); $response->makeStandardsCompliant($componentContext->getHttpRequest()); }
/** * Returns the HTTP response corresponding to the currently handled request * * @return Response * @api */ public function getHttpResponse() { return $this->componentContext->getHttpResponse(); }