Router.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace Opentalent\OtRouter\Middleware;
  3. use Opentalent\OtRouter\Routing\Resolver;
  4. use Psr\Http\Message\ResponseInterface;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. use Psr\Http\Server\MiddlewareInterface;
  7. use Psr\Http\Server\RequestHandlerInterface;
  8. use TYPO3\CMS\Core\Utility\GeneralUtility;
  9. use TYPO3\CMS\Extbase\Object\ObjectManager;
  10. /**
  11. * Hooks into the frontend request and use the index table to resolve a page uid
  12. *
  13. * @internal
  14. */
  15. class Router implements MiddlewareInterface
  16. {
  17. /**
  18. *
  19. * @param ServerRequestInterface $request
  20. * @param RequestHandlerInterface $handler
  21. * @return ResponseInterface
  22. */
  23. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  24. {
  25. $uri = $request->getUri();
  26. $resolver = GeneralUtility::makeInstance(ObjectManager::class)->get(Resolver::class);
  27. $pageUid = $resolver->getPageUid(
  28. $uri->getHost(),
  29. $uri->getPath(),
  30. );
  31. // just pass the plate to the next middleware...
  32. return $handler->handle($request);
  33. }
  34. }