From ec72de7f14c16ee985ab26b5b6791518e348de96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Tue, 17 Aug 2021 16:11:00 +0200 Subject: [PATCH] [TASK] Fix scrutinizer issues on Routing-Enhancers feature Fixes: #2257 --- .../CachedPathVariableModifier.php | 3 ++- Classes/Middleware/SolrRoutingMiddleware.php | 15 ++++++++------- .../Enhancer/SolrFacetMaskAndCombineEnhancer.php | 5 +++-- Classes/Routing/RoutingService.php | 15 +++++++++------ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/Classes/EventListener/EnhancedRouting/CachedPathVariableModifier.php b/Classes/EventListener/EnhancedRouting/CachedPathVariableModifier.php index fdba92d2b..48963863c 100644 --- a/Classes/EventListener/EnhancedRouting/CachedPathVariableModifier.php +++ b/Classes/EventListener/EnhancedRouting/CachedPathVariableModifier.php @@ -64,7 +64,8 @@ public function __invoke(BeforeProcessCachedVariablesEvent $event): void $standardizedKeys = $variableKeys; - for ($i = 0; $i < count($variableKeys); $i++) { + $variableKeysCount = count($variableKeys); + for ($i = 0; $i < $variableKeysCount; $i++) { $standardizedKey = $this->standardizeKey($variableKeys[$i]); if (!$this->containsPathVariable($standardizedKey, $pathVariables) || empty($variableValues[$standardizedKey])) { continue; diff --git a/Classes/Middleware/SolrRoutingMiddleware.php b/Classes/Middleware/SolrRoutingMiddleware.php index 32aaf237e..27cd751eb 100644 --- a/Classes/Middleware/SolrRoutingMiddleware.php +++ b/Classes/Middleware/SolrRoutingMiddleware.php @@ -188,9 +188,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface protected function configure(array $enhancerConfiguration): void { $this->settings = $enhancerConfiguration['solr']; - $this->namespace = isset($enhancerConfiguration['extensionKey']) ? - $enhancerConfiguration['extensionKey'] : - $this->namespace; + $this->namespace = $enhancerConfiguration['extensionKey'] ?? $this->namespace; $this->routingService = null; } @@ -274,7 +272,8 @@ protected function extractParametersFromUriPath(UriInterface $uri, string $path, } // Extract the values - for ($i = 0; $i < count($uriElements); $i++) { + $uriElementsCount = count($uriElements); + for ($i = 0; $i < $uriElementsCount; $i++) { // Skip empty elements if (empty($uriElements[$i])) { continue; @@ -315,7 +314,8 @@ protected function retrievePageInformation(UriInterface $uri, Site $site): array ); if (empty($items)) { $this->logger - ->error( + ->/** @scrutinizer ignore-call */ + error( vsprintf( 'Could not determine page for slug "%1$s" and language "%2$s". Given path "%3$s"', [ @@ -328,7 +328,8 @@ protected function retrievePageInformation(UriInterface $uri, Site $site): array $scan = false; } elseif (empty($path)) { $this->logger - ->error( + ->/** @scrutinizer ignore-call */ + error( vsprintf( 'Could resolve page by path "%1$s" and language "%2$s".', [ @@ -377,7 +378,7 @@ protected function retrievePageInformation(UriInterface $uri, Site $site): array */ protected function getRoutingService(): RoutingService { - if (!($this->routingService instanceof RoutingService)) { + if (null === $this->routingService) { $this->routingService = GeneralUtility::makeInstance( RoutingService::class, $this->settings, diff --git a/Classes/Routing/Enhancer/SolrFacetMaskAndCombineEnhancer.php b/Classes/Routing/Enhancer/SolrFacetMaskAndCombineEnhancer.php index 97ba18ed0..7479e14cd 100644 --- a/Classes/Routing/Enhancer/SolrFacetMaskAndCombineEnhancer.php +++ b/Classes/Routing/Enhancer/SolrFacetMaskAndCombineEnhancer.php @@ -102,7 +102,7 @@ public function enhanceForGeneration(RouteCollection $collection, array $paramet $variables = array_flip($compiledRoute->getPathVariables()); $mergedParams = array_replace($variant->getDefaults(), $deflatedParameters); // all params must be given, otherwise we exclude this variant - if ($diff = array_diff_key($variables, $mergedParams)) { + if (array_diff_key($variables, $mergedParams) !== []) { return; } @@ -214,7 +214,8 @@ protected function replaceVariableWithHash(Route $route, array $parameters = []) $keepVariables = []; - for ($i = 0; $i < count($pathTokens); $i++) { + $pathTokensCount = count($pathTokens); + for ($i = 0; $i < $pathTokensCount; $i++) { // wee only looking for variables if ($pathTokens[$i][0] !== 'variable') { continue; diff --git a/Classes/Routing/RoutingService.php b/Classes/Routing/RoutingService.php index 7dc3d338b..b341cbc6f 100644 --- a/Classes/Routing/RoutingService.php +++ b/Classes/Routing/RoutingService.php @@ -268,7 +268,8 @@ public function finalizePathQuery(string $uriPath): string * 2. Apply character replacements * 3. Filter duplicate values */ - for ($i = 0; $i < count($queryValues); $i++) { + $queryValuesCount = count($queryValues); + for ($i = 0; $i < $queryValuesCount; $i++) { $queryValues[$i] = urldecode($queryValues[$i]); if ($this->containsFacetAndValueSeparator((string)$queryValues[$i])) { [$facetName, $facetValue] = explode( @@ -326,13 +327,15 @@ public function maskQueryParameters(array $queryParams): array if (!isset($queryParams[$this->getPluginNamespace()])) { $this->logger - ->error('Mask error: Query parameters has no entry for namespace ' . $this->getPluginNamespace()); + ->/** @scrutinizer ignore-call */ + error('Mask error: Query parameters has no entry for namespace ' . $this->getPluginNamespace()); return $queryParams; } if (!isset($queryParams[$this->getPluginNamespace()]['filter'])) { $this->logger - ->info('Mask info: Query parameters has no filter in namespace ' . $this->getPluginNamespace()); + ->/** @scrutinizer ignore-call */ + info('Mask info: Query parameters has no filter in namespace ' . $this->getPluginNamespace()); return $queryParams; } $queryParameterMap = $this->getQueryParameterMap(); @@ -345,7 +348,7 @@ public function maskQueryParameters(array $queryParams): array $keep = false; if (isset($queryParameterMap[$facetName]) && isset($newQueryParams[$queryParameterMap[$facetName]])) { - $this->logger->error( + $this->logger->/** @scrutinizer ignore-call */error( 'Mask error: Facet "' . $facetName . '" as "' . $queryParameterMap[$facetName] . '" already in query!' ); @@ -589,7 +592,6 @@ public function inflateQueryParameter(array $queryParams = []): array foreach ($queryParams[$this->getPluginNamespace()]['filter'] as $set) { $separator = $this->detectFacetAndValueSeparator((string)$set); [$facetName, $facetValuesString] = explode($separator, $set, 2); - $facetValues = [$facetValuesString]; $facetValues = explode($this->urlFacetQueryService->getMultiValueSeparator(), $facetValuesString); /** @@ -686,7 +688,8 @@ public function containsFacetAndValueSeparator(string $facetWithValue): bool */ public function cleanupFacetValues(array $facetValues): array { - for ($i = 0; $i < count($facetValues); $i++) { + $facetValuesCount = count($facetValues); + for ($i = 0; $i < $facetValuesCount; $i++) { if (!$this->containsFacetAndValueSeparator((string)$facetValues[$i])) { continue; }