diff --git a/src/Components/Health/Checker/PerformanceChecker/MessengerAutoSetupChecker.php b/src/Components/Health/Checker/PerformanceChecker/MessengerAutoSetupChecker.php new file mode 100644 index 00000000..0aaaa782 --- /dev/null +++ b/src/Components/Health/Checker/PerformanceChecker/MessengerAutoSetupChecker.php @@ -0,0 +1,58 @@ +isAutoSetupEnabled($this->messageTransportDsn) || $this->isAutoSetupEnabled($this->messageTransportDsnLowPriority) || $this->isAutoSetupEnabled($this->messageTransportDsnFailure)) { + $collection->add( + SettingsResult::info( + 'messenger-auto-setup', + 'Messenger auto_setup', + 'enabled', + 'disabled', + 'https://developer.shopware.com/docs/guides/hosting/performance/performance-tweaks.html#disable-auto-setup', + ), + ); + } + } + + private function isAutoSetupEnabled(string $messageTransportDsn): bool + { + $queryParams = \parse_url($messageTransportDsn, \PHP_URL_QUERY); + + // Messenger DSN is invalid. Therefore, we can't really check + if ($queryParams === false) { + return false; + } + + if ($queryParams === null) { + return true; + } + + $query = []; + \parse_str($queryParams, $query); + + $query += ['auto_setup' => true]; + + return filter_var($query['auto_setup'], \FILTER_VALIDATE_BOOL); + } +}