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

@@ -12,6 +12,7 @@ enum HashAlgorithm: string
case SHA512 = 'sha512';
case SHA3_256 = 'sha3-256';
case SHA3_512 = 'sha3-512';
case XXHASH3 = 'xxh3';
case XXHASH64 = 'xxh64';
public function isSecure(): bool
@@ -29,6 +30,7 @@ enum HashAlgorithm: string
self::SHA1 => 40,
self::SHA256, self::SHA3_256 => 64,
self::SHA512, self::SHA3_512 => 128,
self::XXHASH3 => 16,
self::XXHASH64 => 16,
};
}
@@ -45,6 +47,17 @@ enum HashAlgorithm: string
public static function fast(): self
{
return extension_loaded('xxhash') ? self::XXHASH64 : self::SHA256;
// Prefer xxh3 if available (faster than xxh64)
if (in_array('xxh3', hash_algos(), true)) {
return self::XXHASH3;
}
// Fallback to xxh64 if available
if (in_array('xxh64', hash_algos(), true)) {
return self::XXHASH64;
}
// Default to SHA256 if no xxhash algorithms available
return self::SHA256;
}
}