From b0a8a03f0ad7216152a6e28b4693de7391099534 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 3 Oct 2021 10:35:35 +0200 Subject: [PATCH] Refactored NotFoundRedirectResolver to remove duplicated lines and non-strict code --- .../src/Config/NotFoundRedirectResolver.php | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/module/Core/src/Config/NotFoundRedirectResolver.php b/module/Core/src/Config/NotFoundRedirectResolver.php index 64837a64..1d1d4519 100644 --- a/module/Core/src/Config/NotFoundRedirectResolver.php +++ b/module/Core/src/Config/NotFoundRedirectResolver.php @@ -27,24 +27,21 @@ class NotFoundRedirectResolver implements NotFoundRedirectResolverInterface NotFoundRedirectConfigInterface $config, UriInterface $currentUri, ): ?ResponseInterface { - return match (true) { - $notFoundType->isBaseUrl() && $config->hasBaseUrlRedirect() => - $this->redirectResponseHelper->buildRedirectResponse( - // @phpstan-ignore-next-line Create custom PHPStan rule - $this->resolvePlaceholders($currentUri, $config->baseUrlRedirect()), - ), - $notFoundType->isRegularNotFound() && $config->hasRegular404Redirect() => - $this->redirectResponseHelper->buildRedirectResponse( - // @phpstan-ignore-next-line Create custom PHPStan rule - $this->resolvePlaceholders($currentUri, $config->regular404Redirect()), - ), + $urlToRedirectTo = match (true) { + $notFoundType->isBaseUrl() && $config->hasBaseUrlRedirect() => $config->baseUrlRedirect(), + $notFoundType->isRegularNotFound() && $config->hasRegular404Redirect() => $config->regular404Redirect(), $notFoundType->isInvalidShortUrl() && $config->hasInvalidShortUrlRedirect() => - $this->redirectResponseHelper->buildRedirectResponse( - // @phpstan-ignore-next-line Create custom PHPStan rule - $this->resolvePlaceholders($currentUri, $config->invalidShortUrlRedirect()), - ), + $config->invalidShortUrlRedirect(), default => null, }; + + if ($urlToRedirectTo === null) { + return null; + } + + return $this->redirectResponseHelper->buildRedirectResponse( + $this->resolvePlaceholders($currentUri, $urlToRedirectTo), + ); } private function resolvePlaceholders(UriInterface $currentUri, string $redirectUrl): string