feat(Docker): Upgrade to PHP 8.5.0RC3 with native ext-uri support

BREAKING CHANGE: Requires PHP 8.5.0RC3

Changes:
- Update Docker base image from php:8.4-fpm to php:8.5.0RC3-fpm
- Enable ext-uri for native WHATWG URL parsing support
- Update composer.json PHP requirement from ^8.4 to ^8.5
- Add ext-uri as required extension in composer.json
- Move URL classes from Url.php85/ to Url/ directory (now compatible)
- Remove temporary PHP 8.4 compatibility workarounds

Benefits:
- Native URL parsing with Uri\WhatWg\Url class
- Better performance for URL operations
- Future-proof with latest PHP features
- Eliminates PHP version compatibility issues
This commit is contained in:
2025-10-27 09:31:28 +01:00
parent 799f74f00a
commit c8b47e647d
81 changed files with 6988 additions and 601 deletions

View File

@@ -16,17 +16,22 @@ use Throwable;
*/
final readonly class ExponentialBackoffStrategy implements RetryStrategy
{
private Duration $initialDelay;
private Duration $maxDelay;
public function __construct(
private int $maxAttempts = 3,
private Duration $initialDelay = new Duration(100), // 100ms
?Duration $initialDelay = null,
private float $multiplier = 2.0,
private Duration $maxDelay = new Duration(10000), // 10s
?Duration $maxDelay = null,
private bool $useJitter = true,
private array $retryableExceptions = [
\RuntimeException::class,
\Exception::class,
]
) {
$this->initialDelay = $initialDelay ?? Duration::fromMilliseconds(100);
$this->maxDelay = $maxDelay ?? Duration::fromSeconds(10);
}
public function shouldRetry(int $currentAttempt, Throwable $exception): bool