src/Controller/CustomDomainController.php line 46

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Harmonizely\Controller;
  4. use Harmonizely\CustomDomain\RequestHandlerResolver;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Symfony\Component\HttpFoundation\Response;
  8. class CustomDomainController extends AbstractController
  9. {
  10.     /**
  11.      * @var RequestStack
  12.      */
  13.     private RequestStack $requestStack;
  14.     /**
  15.      * @var RequestHandlerResolver
  16.      */
  17.     private RequestHandlerResolver $requestHandlerResolver;
  18.     /**
  19.      * @param RequestStack $requestStack
  20.      * @param RequestHandlerResolver $requestHandlerResolver
  21.      */
  22.     public function __construct(RequestStack $requestStackRequestHandlerResolver $requestHandlerResolver)
  23.     {
  24.         $this->requestStack $requestStack;
  25.         $this->requestHandlerResolver $requestHandlerResolver;
  26.     }
  27.     /**
  28.      * @return Response
  29.      */
  30.     public function forwardToSchedulingPage(): Response
  31.     {
  32.         $request $this->requestStack->getMasterRequest();
  33.         $domain $request->headers->get(RequestHandlerResolver::CUSTOM_DOMAIN_HEADER);
  34.         $path = (string)$request->headers->get(RequestHandlerResolver::CUSTOM_DOMAIN_PATH_HEADER);
  35.         $requestHandler $this->requestHandlerResolver->resolve($domain$path);
  36.         if (null === $requestHandler) {
  37.             throw $this->createNotFoundException();
  38.         }
  39.         return $this->forward($requestHandler->getController(), $requestHandler->getParameters(), $request->query->all());
  40.     }
  41. }