@@ -5,6 +5,147 @@ All notable changes to the PivotPHP Framework will be documented in this file.
5
5
The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
6
6
and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
7
7
8
+ ## [ 1.1.0] - 2025-07-09
9
+
10
+ ### 🚀 ** High-Performance Edition**
11
+
12
+ > 📖 ** Complete documentation:** [ docs/releases/v1.1.0/] ( docs/releases/v1.1.0/ )
13
+
14
+ #### Added
15
+ - ** High-Performance Mode** : Centralized performance management with pre-configured profiles
16
+ - ` STANDARD ` profile for applications <1K req/s
17
+ - ` HIGH ` profile for 1K-10K req/s
18
+ - ` EXTREME ` profile for >10K req/s
19
+ - Easy one-line enablement: ` HighPerformanceMode::enable(HighPerformanceMode::PROFILE_HIGH) `
20
+ - ** Dynamic Object Pooling** : Auto-scaling pools with intelligent overflow handling
21
+ - ` DynamicPool ` with automatic expansion/shrinking based on load
22
+ - Four overflow strategies: ElasticExpansion, PriorityQueuing, GracefulFallback, SmartRecycling
23
+ - Emergency mode for extreme load conditions
24
+ - Pool metrics and efficiency tracking
25
+ - ** Performance Middleware Suite** :
26
+ - ` LoadShedder ` : Intelligent request dropping under overload (priority, random, oldest, adaptive strategies)
27
+ - ` CircuitBreaker ` : Failure isolation with automatic recovery (CLOSED, OPEN, HALF_OPEN states)
28
+ - Enhanced ` RateLimiter ` with burst support and priority handling
29
+ - ** Memory Management System** :
30
+ - ` MemoryManager ` with adaptive GC strategies
31
+ - Automatic pool size adjustments based on memory pressure
32
+ - Four pressure levels: LOW, MEDIUM, HIGH, CRITICAL
33
+ - Emergency mode activation under critical conditions
34
+ - ** Distributed Pool Coordination** (Extension-based):
35
+ - ` DistributedPoolManager ` for multi-instance deployments
36
+ - Built-in ` NoOpCoordinator ` for single-instance operation
37
+ - Redis/etcd/Consul support via optional extensions
38
+ - Leader election for pool rebalancing
39
+ - Cross-instance object sharing
40
+ - ** Real-Time Performance Monitoring** :
41
+ - ` PerformanceMonitor ` with live metrics collection
42
+ - Latency percentiles (P50, P90, P95, P99)
43
+ - Throughput and error rate tracking
44
+ - Prometheus-compatible metric export
45
+ - Built-in alerting system
46
+ - ** Console Commands** :
47
+ - ` pool:stats ` for real-time pool monitoring
48
+ - Performance metrics display
49
+ - Health status monitoring
50
+
51
+ #### Performance Improvements
52
+ - ** 25x faster** Request/Response creation (2K → 50K ops/s)
53
+ - ** 90% reduction** in memory usage per request (100KB → 10KB)
54
+ - ** 90% reduction** in P99 latency (50ms → 5ms)
55
+ - ** 10x increase** in max throughput (5K → 50K req/s)
56
+ - ** Zero downtime** during pool scaling operations
57
+
58
+ #### Documentation
59
+ - ** HIGH_PERFORMANCE_GUIDE.md** : Complete usage guide with examples
60
+ - ** ARCHITECTURE.md** : Technical architecture and component design
61
+ - ** PERFORMANCE_TUNING.md** : Production tuning for maximum performance
62
+ - ** MONITORING.md** : Monitoring setup with Prometheus/Grafana
63
+
64
+ ## [ 1.0.1] - 2025-07-09
65
+
66
+ ### 🔄 ** PSR-7 Hybrid Support & Performance Optimizations**
67
+
68
+ > 📖 ** See complete overview:** [ docs/technical/http/] ( docs/technical/http/ )
69
+
70
+ #### Added
71
+ - ** PSR-7 Hybrid Implementation** : Request/Response classes now implement PSR-7 interfaces while maintaining Express.js API
72
+ - ` Request ` implements ` ServerRequestInterface ` with full PSR-7 compatibility
73
+ - ` Response ` implements ` ResponseInterface ` with full PSR-7 compatibility
74
+ - 100% backward compatibility - existing code works without changes
75
+ - Lazy loading for PSR-7 objects - created only when needed
76
+ - Support for PSR-15 middleware with type hints
77
+ - ** Object Pooling System** : Advanced memory optimization for high-performance scenarios
78
+ - ` Psr7Pool ` class managing pools for ServerRequest, Response, Uri, and Stream objects
79
+ - ` OptimizedHttpFactory ` with configurable pooling settings
80
+ - Automatic object reuse to reduce garbage collection pressure
81
+ - Configurable pool sizes and warm-up capabilities
82
+ - Performance metrics and monitoring tools
83
+ - ** Debug Mode Documentation** : Comprehensive guide for debugging applications
84
+ - Environment configuration options
85
+ - Logging and error handling best practices
86
+ - Security considerations for debug mode
87
+ - Performance impact analysis
88
+ - ** Enhanced Documentation** : Complete PSR-7 hybrid usage guides
89
+ - Updated Request/Response documentation with PSR-7 examples
90
+ - Object pooling configuration and usage examples
91
+ - Performance optimization techniques
92
+
93
+ #### Changed
94
+ - ** Request Class** : Now extends PSR-7 ServerRequestInterface while maintaining Express.js methods
95
+ - ` getBody() ` method renamed to ` getBodyAsStdClass() ` for legacy compatibility
96
+ - Added PSR-7 methods: ` getMethod() ` , ` getUri() ` , ` getHeaders() ` , ` getBody() ` , etc.
97
+ - ` getHeaders() ` renamed to ` getHeadersObject() ` for Express.js style (returns HeaderRequest)
98
+ - Immutable ` with*() ` methods for PSR-7 compliance
99
+ - Lazy loading implementation for performance
100
+ - ** Distributed Pooling** : Now requires external extensions for coordination backends
101
+ - Redis support moved to ` pivotphp/redis-pool ` extension
102
+ - Built-in ` NoOpCoordinator ` for single-instance deployments
103
+ - Automatic fallback when extensions are not available
104
+ - ** Response Class** : Now extends PSR-7 ResponseInterface while maintaining Express.js methods
105
+ - Added PSR-7 methods: ` getStatusCode() ` , ` getHeaders() ` , ` getBody() ` , etc.
106
+ - Immutable ` with*() ` methods for PSR-7 compliance
107
+ - Lazy loading implementation for performance
108
+ - ** Factory System** : Enhanced with pooling capabilities
109
+ - ` OptimizedHttpFactory ` replaces basic HTTP object creation
110
+ - Configurable pooling for better memory management
111
+ - Automatic object lifecycle management
112
+
113
+ #### Fixed
114
+ - ** Type Safety** : Resolved PHPStan Level 9 issues with PSR-7 implementation
115
+ - ** Method Conflicts** : Fixed ` getBody() ` method conflict between legacy and PSR-7 interfaces
116
+ - ** File Handling** : Improved file upload handling with proper PSR-7 stream integration
117
+ - ** Immutability** : Ensured proper immutability in PSR-7 ` with*() ` methods
118
+ - ** Test Compatibility** : Updated test suite to work with hybrid implementation
119
+
120
+ #### Performance Improvements
121
+ - ** Lazy Loading** : PSR-7 objects created only when accessed, reducing memory usage
122
+ - ** Object Pooling** : Significant reduction in object creation and garbage collection
123
+ - ** Optimized Factory** : Intelligent object reuse for better performance
124
+ - ** Memory Efficiency** : Up to 60% reduction in memory usage for high-traffic scenarios
125
+
126
+ #### Examples
127
+ ``` php
128
+ // Express.js API (unchanged)
129
+ $app->get('/users/:id', function($req, $res) {
130
+ $id = $req->param('id');
131
+ return $res->json(['user' => $userService->find($id)]);
132
+ });
133
+
134
+ // PSR-7 API (now supported)
135
+ $app->use(function(ServerRequestInterface $request, ResponseInterface $response, $next) {
136
+ $method = $request->getMethod();
137
+ $newRequest = $request->withAttribute('processed', true);
138
+ return $next($newRequest, $response);
139
+ });
140
+
141
+ // Object pooling configuration
142
+ OptimizedHttpFactory::initialize([
143
+ 'enable_pooling' => true,
144
+ 'warm_up_pools' => true,
145
+ 'max_pool_size' => 100,
146
+ ]);
147
+ ```
148
+
8
149
## [ 1.0.1] - 2025-07-08
9
150
10
151
### 🆕 ** Regex Route Validation Support & PSR-7 Compatibility**
@@ -142,6 +283,6 @@ For questions, issues, or contributions:
142
283
---
143
284
144
285
** Current Version** : v1.0.1
145
- ** Release Date** : July 8 , 2025
146
- ** Status** : Ideal for concept validation and studies
286
+ ** Release Date** : July 9 , 2025
287
+ ** Status** : Production-ready with PSR-7 hybrid support
147
288
** Minimum PHP** : 8.1
0 commit comments