Skip to content

Commit 5448dc2

Browse files
committed
chore(CHANGELOG): update for v3.4.0 release with new features, changes, and fixes
1 parent ed91d71 commit 5448dc2

1 file changed

Lines changed: 66 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,71 @@
11
# Release Notes
22

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>
469

570
## [v3.3.0](https://github.com/Thavarshan/fetch-php/compare/v3.2.3...v3.3.0) - 2025-01-17
671

0 commit comments

Comments
 (0)