|
1 | 1 | # Release Notes |
2 | 2 |
|
3 | | -## [Unreleased](https://github.com/Thavarshan/fetch-php/compare/v3.3.0...HEAD) |
| 3 | +## [Unreleased](https://github.com/Thavarshan/fetch-php/compare/v3.4.0...HEAD) |
| 4 | + |
| 5 | +## [v3.4.0](https://github.com/Thavarshan/fetch-php/compare/v3.3.0...v3.4.0) - 2025-12-07 |
| 6 | + |
| 7 | +### Added |
| 8 | + |
| 9 | +- **RFC 7234 HTTP Caching Support** with intelligent cache control: |
| 10 | + - `MemoryCache` for fast in-memory caching |
| 11 | + - `FileCache` for persistent disk-based caching with TTL support |
| 12 | + - `CacheControl` parser for RFC 7234 compliant cache directive handling |
| 13 | + - `CacheKeyGenerator` with collision-resistant SHA-256 hashing |
| 14 | + - `CachedResponse` wrapper with metadata and validation support |
| 15 | + - `ManagesCache` trait integrated into `ClientHandler` for transparent caching |
| 16 | + - Automatic cache revalidation with `If-None-Match` and `If-Modified-Since` headers |
| 17 | + - Support for `Cache-Control`, `ETag`, `Last-Modified`, `Expires`, `Age`, and `Vary` headers |
| 18 | + - Configurable cache TTL, stale responses, and revalidation strategies |
| 19 | + - 802 new test assertions for caching functionality |
| 20 | + |
| 21 | +- **Connection Pooling & HTTP/2 Support** for improved performance: |
| 22 | + - `ConnectionPool` for managing persistent connections across hosts |
| 23 | + - `HostConnectionPool` for per-host connection management with limits |
| 24 | + - `DnsCache` for caching DNS lookups to reduce resolution overhead |
| 25 | + - `Connection` class for tracking connection state and reuse |
| 26 | + - `PoolConfiguration` for customizable pool settings (max connections, idle timeout, TTL) |
| 27 | + - `Http2Configuration` for HTTP/2 multiplexing and push support |
| 28 | + - `ManagesConnectionPool` trait with connection pool lifecycle management |
| 29 | + - Automatic connection recycling and health monitoring |
| 30 | + - 558 new test assertions for connection pooling |
| 31 | + |
| 32 | +- **Debugging & Profiling Tools** for request analysis: |
| 33 | + - `DebugInfo` class capturing detailed request/response information |
| 34 | + - `FetchProfiler` for comprehensive performance metrics and bottleneck detection |
| 35 | + - `ManagesDebugAndProfiling` trait for debug mode support |
| 36 | + - Sensitive header redaction and sanitization methods (Authorization, API keys, tokens) |
| 37 | + - Timing breakdown: DNS lookup, connection, TLS handshake, TTFB, transfer times |
| 38 | + - Memory usage tracking and cURL transfer statistics |
| 39 | + - Debug mode with detailed logging and inspection capabilities |
| 40 | + - 570 new test assertions for debugging/profiling features |
| 41 | + |
| 42 | +- New interfaces for extensibility: |
| 43 | + - `CacheableHandler` for cache manager access |
| 44 | + - `CacheableRequestHandler` for cache operations |
| 45 | + - `DebuggableHandler` for debug/profiling support |
| 46 | + - `PoolAwareHandler` for connection pool management |
| 47 | + |
| 48 | +### Changed |
| 49 | + |
| 50 | +- Refactored `ClientHandler` interface to extend multiple focused interfaces for better separation of concerns |
| 51 | +- Enhanced `PerformsHttpRequests` trait with integrated caching support |
| 52 | +- Improved PHPDoc comments with detailed parameter types for better IDE support and static analysis |
| 53 | +- Updated method signatures in `RequestConfigurator` to return specific types instead of `self` |
| 54 | +- Streamlined pre-commit script to use Composer commands instead of shell commands |
| 55 | +- Enhanced type hints across `CacheManager`, `ManagesDebugAndProfiling`, `ManagesRetries`, and `PerformsHttpRequests` traits |
| 56 | + |
| 57 | +### Fixed |
| 58 | + |
| 59 | +- Fixed timing precision issues in delay tests on Windows (#72) |
| 60 | +- Fixed PHPStan type inference for `ClientHandler` method chaining |
| 61 | +- Improved TTL behavior consistency in cache implementations |
| 62 | +- Enhanced null handling and race condition prevention in cache operations |
| 63 | +- Fixed status code handling consistency across caching layer |
| 64 | +- Improved URI handling in connection pool exceptions |
| 65 | +- Corrected time-to-first-byte calculation in profiling metrics |
| 66 | +- Enhanced code style consistency: proper namespace imports, class element ordering, and PHPDoc cleanup |
| 67 | + |
| 68 | +**Full Changelog**: <https://github.com/Thavarshan/fetch-php/compare/v3.3.0...v3.4.0> |
4 | 69 |
|
5 | 70 | ## [v3.3.0](https://github.com/Thavarshan/fetch-php/compare/v3.2.3...v3.3.0) - 2025-01-17 |
6 | 71 |
|
|
0 commit comments