From def30b47b5f7d39bb9cde9b641c230095cb60d4c Mon Sep 17 00:00:00 2001 From: Sylius Bot Date: Wed, 17 Dec 2025 02:35:10 +0000 Subject: [PATCH] [CS][DX] Refactor --- .../Telemetry/Collector/BusinessDataCollector.php | 1 + .../Business/OrdersBusinessDataProvider.php | 1 + .../Technical/DatabasePlatformDataProvider.php | 2 +- .../Provider/Technical/EnvironmentDataProvider.php | 6 +++--- .../Provider/Technical/VersionDataProvider.php | 2 +- .../Telemetry/Sender/TelemetrySender.php | 2 -- .../tests/Telemetry/Cache/TelemetryCacheTest.php | 1 + .../EventListener/TelemetryListenerTest.php | 1 + .../Telemetry/Mapper/ValueRangeMapperTest.php | 6 +++--- .../Business/CurrenciesDataProviderTest.php | 1 + .../Provider/Business/LocalesDataProviderTest.php | 1 + .../Business/MetricsCountsDataProviderTest.php | 1 + .../Business/OrdersBusinessDataProviderTest.php | 1 + .../Business/PaymentMethodsDataProviderTest.php | 1 + .../Business/ShippingMethodsDataProviderTest.php | 1 + .../Technical/DatabasePlatformDataProviderTest.php | 2 ++ .../Technical/EnvironmentDataProviderTest.php | 2 +- .../Provider/Technical/VersionDataProviderTest.php | 2 +- .../tests/Telemetry/Sender/TelemetrySenderTest.php | 14 +++++++------- .../Core/Telemetry/Cache/TelemetryCache.php | 6 ++++++ .../Core/Telemetry/Mapper/ValueRangeMapper.php | 8 ++++---- .../Telemetry/Sender/TelemetrySenderInterface.php | 1 + 22 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Collector/BusinessDataCollector.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Collector/BusinessDataCollector.php index b682e24371..46d486a063 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Collector/BusinessDataCollector.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Collector/BusinessDataCollector.php @@ -79,6 +79,7 @@ final class BusinessDataCollector implements TelemetryDataCollectorInterface /** * @param array $normalized + * * @return array{0: array, 1: array} */ private function separateMetrics(array $normalized): array diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Business/OrdersBusinessDataProvider.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Business/OrdersBusinessDataProvider.php index d8b6ebb18b..4f5c167450 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Business/OrdersBusinessDataProvider.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Business/OrdersBusinessDataProvider.php @@ -81,6 +81,7 @@ final class OrdersBusinessDataProvider implements DataProviderInterface /** * @param list> $results + * * @return array */ private function processResults(array $results): array diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/DatabasePlatformDataProvider.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/DatabasePlatformDataProvider.php index 97bf691c15..d017b85eea 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/DatabasePlatformDataProvider.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/DatabasePlatformDataProvider.php @@ -125,7 +125,7 @@ final class DatabasePlatformDataProvider implements DataProviderInterface ], 'oracle' => [ "SELECT BANNER FROM v\$version WHERE BANNER LIKE 'Oracle%'", - "SELECT version FROM v\$instance", + 'SELECT version FROM v$instance', "SELECT * FROM PRODUCT_COMPONENT_VERSION WHERE PRODUCT LIKE 'Oracle%'", ], default => [ diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/EnvironmentDataProvider.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/EnvironmentDataProvider.php index a14675268f..cfb9fe8ee4 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/EnvironmentDataProvider.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/EnvironmentDataProvider.php @@ -29,7 +29,7 @@ final class EnvironmentDataProvider implements DataProviderInterface return new EnvironmentData( app: $this->appEnvironment, webserver: $this->getWebServerSoftware(), - os: PHP_OS_FAMILY, + os: \PHP_OS_FAMILY, docker: $this->isRunningInDocker(), ramGb: $this->getSystemMemoryInGb(), phpMemoryLimit: ini_get('memory_limit') ?: null, @@ -42,7 +42,7 @@ final class EnvironmentDataProvider implements DataProviderInterface return $_SERVER['SERVER_SOFTWARE']; } - return PHP_SAPI; + return \PHP_SAPI; } private function isRunningInDocker(): bool @@ -52,7 +52,7 @@ final class EnvironmentDataProvider implements DataProviderInterface private function getSystemMemoryInGb(): ?float { - return match (PHP_OS_FAMILY) { + return match (\PHP_OS_FAMILY) { 'Linux' => $this->getLinuxMemory(), 'Darwin' => $this->getMacOsMemory(), 'Windows' => $this->getWindowsMemory(), diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/VersionDataProvider.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/VersionDataProvider.php index 0cbc4b616e..7b26de7129 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/VersionDataProvider.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Provider/Technical/VersionDataProvider.php @@ -28,7 +28,7 @@ final class VersionDataProvider implements DataProviderInterface { return new VersionData( syliusVersion: SyliusCoreBundle::VERSION, - phpVersion: PHP_VERSION, + phpVersion: \PHP_VERSION, symfonyVersion: Kernel::VERSION, doctrineVersion: $this->getInstalledPackageVersion('doctrine/orm'), twigVersion: Environment::VERSION, diff --git a/src/Sylius/Bundle/CoreBundle/Telemetry/Sender/TelemetrySender.php b/src/Sylius/Bundle/CoreBundle/Telemetry/Sender/TelemetrySender.php index 947d8c5493..9770def9ae 100644 --- a/src/Sylius/Bundle/CoreBundle/Telemetry/Sender/TelemetrySender.php +++ b/src/Sylius/Bundle/CoreBundle/Telemetry/Sender/TelemetrySender.php @@ -45,10 +45,8 @@ final class TelemetrySender implements TelemetrySenderInterface return $statusCode === 200; } catch (TransportExceptionInterface $exception) { - return false; } catch (\Throwable $exception) { - return false; } } diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Cache/TelemetryCacheTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Cache/TelemetryCacheTest.php index 8b5b5f3f45..b1dbb6f741 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Cache/TelemetryCacheTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Cache/TelemetryCacheTest.php @@ -20,6 +20,7 @@ use Symfony\Component\Cache\Adapter\ArrayAdapter; final class TelemetryCacheTest extends TestCase { private ArrayAdapter $cache; + private TelemetryCache $telemetryCache; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/EventListener/TelemetryListenerTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/EventListener/TelemetryListenerTest.php index 39d914e564..feeee217ff 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/EventListener/TelemetryListenerTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/EventListener/TelemetryListenerTest.php @@ -24,6 +24,7 @@ use Symfony\Component\HttpKernel\HttpKernelInterface; final class TelemetryListenerTest extends TestCase { private TelemetrySendManagerInterface $telemetrySendManager; + private TelemetryListener $listener; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Mapper/ValueRangeMapperTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Mapper/ValueRangeMapperTest.php index d25d253612..5d01ea9b47 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Mapper/ValueRangeMapperTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Mapper/ValueRangeMapperTest.php @@ -21,7 +21,7 @@ final class ValueRangeMapperTest extends TestCase /** * @dataProvider gmvDataProvider */ - public function test_it_maps_gmv_to_correct_range(int|float $value, string $expectedRange): void + public function test_it_maps_gmv_to_correct_range(float|int $value, string $expectedRange): void { self::assertSame($expectedRange, ValueRangeMapper::mapGmv($value)); } @@ -51,7 +51,7 @@ final class ValueRangeMapperTest extends TestCase /** * @dataProvider aovDataProvider */ - public function test_it_maps_aov_to_correct_range(int|float $value, string $expectedRange): void + public function test_it_maps_aov_to_correct_range(float|int $value, string $expectedRange): void { self::assertSame($expectedRange, ValueRangeMapper::mapAov($value)); } @@ -160,7 +160,7 @@ final class ValueRangeMapperTest extends TestCase /** * @dataProvider avgItemsDataProvider */ - public function test_it_maps_avg_items_to_correct_range(int|float $value, string $expectedRange): void + public function test_it_maps_avg_items_to_correct_range(float|int $value, string $expectedRange): void { self::assertSame($expectedRange, ValueRangeMapper::mapAvgItems($value)); } diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/CurrenciesDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/CurrenciesDataProviderTest.php index 0e430ac0a6..30c0706562 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/CurrenciesDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/CurrenciesDataProviderTest.php @@ -21,6 +21,7 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Business\CurrenciesDataProvider; final class CurrenciesDataProviderTest extends TestCase { private Connection $connection; + private CurrenciesDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/LocalesDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/LocalesDataProviderTest.php index bc4432d1d4..22e0f5e2a7 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/LocalesDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/LocalesDataProviderTest.php @@ -23,6 +23,7 @@ final class LocalesDataProviderTest extends TestCase private const DEFAULT_LOCALE = 'en_US'; private Connection $connection; + private LocalesDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/MetricsCountsDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/MetricsCountsDataProviderTest.php index 054dfeb500..7797bd0529 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/MetricsCountsDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/MetricsCountsDataProviderTest.php @@ -21,6 +21,7 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Business\MetricsCountsDataProvid final class MetricsCountsDataProviderTest extends TestCase { private Connection $connection; + private MetricsCountsDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/OrdersBusinessDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/OrdersBusinessDataProviderTest.php index d5bd87cb19..3d13c955a9 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/OrdersBusinessDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/OrdersBusinessDataProviderTest.php @@ -21,6 +21,7 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Business\OrdersBusinessDataProvi final class OrdersBusinessDataProviderTest extends TestCase { private Connection $connection; + private OrdersBusinessDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/PaymentMethodsDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/PaymentMethodsDataProviderTest.php index 7dfffc749a..a6af14b6c9 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/PaymentMethodsDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/PaymentMethodsDataProviderTest.php @@ -21,6 +21,7 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Business\PaymentMethodsDataProvi final class PaymentMethodsDataProviderTest extends TestCase { private Connection $connection; + private PaymentMethodsDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/ShippingMethodsDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/ShippingMethodsDataProviderTest.php index e7a3a050d8..3c3224e12d 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/ShippingMethodsDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Business/ShippingMethodsDataProviderTest.php @@ -21,6 +21,7 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Business\ShippingMethodsDataProv final class ShippingMethodsDataProviderTest extends TestCase { private Connection $connection; + private ShippingMethodsDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/DatabasePlatformDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/DatabasePlatformDataProviderTest.php index 3420849b66..156382863c 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/DatabasePlatformDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/DatabasePlatformDataProviderTest.php @@ -23,7 +23,9 @@ use Sylius\Bundle\CoreBundle\Telemetry\Provider\Technical\DatabasePlatformDataPr final class DatabasePlatformDataProviderTest extends TestCase { private Connection $connection; + private ManagerRegistry $managerRegistry; + private DatabasePlatformDataProvider $provider; protected function setUp(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/EnvironmentDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/EnvironmentDataProviderTest.php index 2479043224..cc03892690 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/EnvironmentDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/EnvironmentDataProviderTest.php @@ -56,7 +56,7 @@ final class EnvironmentDataProviderTest extends TestCase $data = $this->provider->provide(); self::assertInstanceOf(EnvironmentData::class, $data); - self::assertSame(PHP_OS_FAMILY, $data->os); + self::assertSame(\PHP_OS_FAMILY, $data->os); } public function test_it_returns_boolean_for_docker(): void diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/VersionDataProviderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/VersionDataProviderTest.php index 1f6176ad91..3db673ef75 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/VersionDataProviderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Provider/Technical/VersionDataProviderTest.php @@ -41,6 +41,6 @@ final class VersionDataProviderTest extends TestCase $data = $this->provider->provide(); self::assertInstanceOf(VersionData::class, $data); - self::assertSame(PHP_VERSION, $data->phpVersion); + self::assertSame(\PHP_VERSION, $data->phpVersion); } } diff --git a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Sender/TelemetrySenderTest.php b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Sender/TelemetrySenderTest.php index 553cd2ffde..b5007932ad 100644 --- a/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Sender/TelemetrySenderTest.php +++ b/src/Sylius/Bundle/CoreBundle/tests/Telemetry/Sender/TelemetrySenderTest.php @@ -34,13 +34,13 @@ final class TelemetrySenderTest extends TestCase 'POST', 'http://localhost:8000/telemetry', $this->callback(function ($options) { - return isset($options['json']) - && isset($options['timeout']) - && $options['timeout'] === 5 - && isset($options['headers']['Content-Type']) - && $options['headers']['Content-Type'] === 'application/json' - && isset($options['headers']['User-Agent']) - && $options['headers']['User-Agent'] === 'Sylius-Prism/1.0'; + return isset($options['json']) && + isset($options['timeout']) && + $options['timeout'] === 5 && + isset($options['headers']['Content-Type']) && + $options['headers']['Content-Type'] === 'application/json' && + isset($options['headers']['User-Agent']) && + $options['headers']['User-Agent'] === 'Sylius-Prism/1.0'; }), ) ->willReturn($response); diff --git a/src/Sylius/Component/Core/Telemetry/Cache/TelemetryCache.php b/src/Sylius/Component/Core/Telemetry/Cache/TelemetryCache.php index 1e94c61e4b..de03648f3c 100644 --- a/src/Sylius/Component/Core/Telemetry/Cache/TelemetryCache.php +++ b/src/Sylius/Component/Core/Telemetry/Cache/TelemetryCache.php @@ -19,11 +19,17 @@ use Psr\Cache\CacheItemPoolInterface; final class TelemetryCache implements TelemetryCacheInterface { private const CACHE_KEY = 'sylius_telemetry'; + private const CACHE_TTL_SUCCESS = 604800; // 7 days + private const CACHE_TTL_FAILURE = 259200; // 3 days + private const RETRY_DELAY = 86400; // 24 hours between retries + private const MAX_ATTEMPTS = 3; + private const STATUS_SUCCESS = 'success'; + private const STATUS_FAILED = 'failed'; public function __construct( diff --git a/src/Sylius/Component/Core/Telemetry/Mapper/ValueRangeMapper.php b/src/Sylius/Component/Core/Telemetry/Mapper/ValueRangeMapper.php index 763e6b90e2..b704131506 100644 --- a/src/Sylius/Component/Core/Telemetry/Mapper/ValueRangeMapper.php +++ b/src/Sylius/Component/Core/Telemetry/Mapper/ValueRangeMapper.php @@ -68,12 +68,12 @@ final class ValueRangeMapper \PHP_INT_MAX => '20+', ]; - public static function mapGmv(int|float $value): string + public static function mapGmv(float|int $value): string { return self::mapToRange($value, self::GMV_RANGES); } - public static function mapAov(int|float $value): string + public static function mapAov(float|int $value): string { return self::mapToRange($value, self::AOV_RANGES); } @@ -98,7 +98,7 @@ final class ValueRangeMapper return self::mapToRange($value, self::CUSTOMER_ORDER_PAYMENT_SHIPMENT_RANGES); } - public static function mapAvgItems(int|float $value): string + public static function mapAvgItems(float|int $value): string { return self::mapToRange($value, self::AVG_ITEMS_RANGES); } @@ -114,7 +114,7 @@ final class ValueRangeMapper } /** @param array $ranges */ - private static function mapToRange(int|float $value, array $ranges): string + private static function mapToRange(float|int $value, array $ranges): string { foreach ($ranges as $threshold => $label) { if ($value < $threshold) { diff --git a/src/Sylius/Component/Core/Telemetry/Sender/TelemetrySenderInterface.php b/src/Sylius/Component/Core/Telemetry/Sender/TelemetrySenderInterface.php index 8e4d5286a3..fd6afe506d 100644 --- a/src/Sylius/Component/Core/Telemetry/Sender/TelemetrySenderInterface.php +++ b/src/Sylius/Component/Core/Telemetry/Sender/TelemetrySenderInterface.php @@ -18,6 +18,7 @@ interface TelemetrySenderInterface { /** * @param array $telemetryData + * * @return bool True if sent successfully, false otherwise */ public function send(array $telemetryData): bool;