Applied styleci fixes and pluck improvement as per larastan

This commit is contained in:
Dan Brown 2021-11-08 15:00:47 +00:00
parent 7405613f8d
commit b3e1c7da73
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9

View File

@ -216,6 +216,7 @@ class SearchRunner
/** /**
* Create a select statement, with prepared bindings, for the given * Create a select statement, with prepared bindings, for the given
* set of scored search terms. * set of scored search terms.
*
* @return array{statement: string, bindings: string[]} * @return array{statement: string, bindings: string[]}
*/ */
protected function selectForScoredTerms(array $scoredTerms): array protected function selectForScoredTerms(array $scoredTerms): array
@ -227,7 +228,7 @@ class SearchRunner
$ifChain = '0'; $ifChain = '0';
$bindings = []; $bindings = [];
foreach ($scoredTerms as $term => $score) { foreach ($scoredTerms as $term => $score) {
$ifChain = 'IF(term like ?, score * ' . (float)$score . ', ' . $ifChain . ')'; $ifChain = 'IF(term like ?, score * ' . (float) $score . ', ' . $ifChain . ')';
$bindings[] = $term . '%'; $bindings[] = $term . '%';
} }
@ -256,24 +257,31 @@ class SearchRunner
} }
$case = 'CASE ' . implode(' ', $whenStatements) . ' END'; $case = 'CASE ' . implode(' ', $whenStatements) . ' END';
$termQuery->selectRaw( $case . ' as term', $whenBindings); $termQuery->selectRaw($case . ' as term', $whenBindings);
$termQuery->selectRaw('COUNT(*) as count'); $termQuery->selectRaw('COUNT(*) as count');
$termQuery->groupByRaw($case, $whenBindings); $termQuery->groupByRaw($case, $whenBindings);
$termCounts = $termQuery->get()->pluck('count', 'term')->toArray(); $termCounts = $termQuery->pluck('count', 'term')->toArray();
$adjusted = $this->rawTermCountsToAdjustments($termCounts); $adjusted = $this->rawTermCountsToAdjustments($termCounts);
$this->termAdjustmentCache[$options] = $adjusted; $this->termAdjustmentCache[$options] = $adjusted;
return $this->termAdjustmentCache[$options]; return $this->termAdjustmentCache[$options];
} }
/** /**
* Convert counts of terms into a relative-count normalised multiplier. * Convert counts of terms into a relative-count normalised multiplier.
*
* @param array<string, int> $termCounts * @param array<string, int> $termCounts
*
* @return array<string, int> * @return array<string, int>
*/ */
protected function rawTermCountsToAdjustments(array $termCounts): array protected function rawTermCountsToAdjustments(array $termCounts): array
{ {
if (empty($termCounts)) {
return [];
}
$multipliers = []; $multipliers = [];
$max = max(array_values($termCounts)); $max = max(array_values($termCounts));
@ -338,7 +346,8 @@ class SearchRunner
try { try {
$date = date_create($input); $date = date_create($input);
$query->where('updated_at', '>=', $date); $query->where('updated_at', '>=', $date);
} catch (\Exception $e) {} } catch (\Exception $e) {
}
} }
protected function filterUpdatedBefore(EloquentBuilder $query, Entity $model, $input): void protected function filterUpdatedBefore(EloquentBuilder $query, Entity $model, $input): void
@ -346,7 +355,8 @@ class SearchRunner
try { try {
$date = date_create($input); $date = date_create($input);
$query->where('updated_at', '<', $date); $query->where('updated_at', '<', $date);
} catch (\Exception $e) {} } catch (\Exception $e) {
}
} }
protected function filterCreatedAfter(EloquentBuilder $query, Entity $model, $input): void protected function filterCreatedAfter(EloquentBuilder $query, Entity $model, $input): void
@ -354,7 +364,8 @@ class SearchRunner
try { try {
$date = date_create($input); $date = date_create($input);
$query->where('created_at', '>=', $date); $query->where('created_at', '>=', $date);
} catch (\Exception $e) {} } catch (\Exception $e) {
}
} }
protected function filterCreatedBefore(EloquentBuilder $query, Entity $model, $input) protected function filterCreatedBefore(EloquentBuilder $query, Entity $model, $input)
@ -362,7 +373,8 @@ class SearchRunner
try { try {
$date = date_create($input); $date = date_create($input);
$query->where('created_at', '<', $date); $query->where('created_at', '<', $date);
} catch (\Exception $e) {} } catch (\Exception $e) {
}
} }
protected function filterCreatedBy(EloquentBuilder $query, Entity $model, $input) protected function filterCreatedBy(EloquentBuilder $query, Entity $model, $input)