*/ private array $definitions; public function __construct(DefinitionRepository $repository) { $this->definitions = $repository->crawlers(); } public function detect(Request $request): ?DetectionResult { return $this->detectUserAgent($request->userAgent); } public function detectUserAgent(string $userAgent): ?DetectionResult { if ($userAgent === '' || $userAgent === '-') { return null; } foreach ($this->definitions as $definition) { if (stripos($userAgent, $definition->uaPattern) !== false) { return new DetectionResult($definition); } } return null; } }