Changelog
November 11, 2025 ยท View on GitHub
All notable changes to Restler will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[6.0.0] - 2024-11-11
Added
- PHP 8.0+ Support: Full support for PHP 8.0, 8.1, 8.2, and 8.3
- PSR-7 HTTP Messages: Complete PSR-7 implementation for request/response handling
- PSR-11 Container: Dependency injection container implementing PSR-11
- Async Server Support:
- ReactPHP HTTP server integration
- Swoole server support for high performance
- Workerman server support
- AWS Lambda Support: Deploy as serverless function via Bref
- GraphQL Support: Built-in GraphQL query support
- Excel Export: Export data to XLSX format
- Chunked Streaming: Generator-based streaming for large datasets
- ChunkedResponseMediaTypeInterface: New interface for streaming media types
- Modern PHP Features:
- Named arguments support
- Union types support
- Attributes support (alongside PHPDoc)
- Enhanced CORS: More granular CORS configuration options
- Session Management: Improved session handling with PSR interfaces
Security
- JSON Serialization: Replaced unsafe
unserialize()withjson_encode/json_decodeto prevent PHP object injection attacks (CRITICAL fix) - JSONP Validation: Added callback name validation to prevent XSS attacks
- Template Hardening: Added
EXTR_SKIPflag toextract()calls to prevent variable overwriting - CORS Improvements: Better CORS header handling and validation
Changed
- Breaking: Minimum PHP version is now 8.0 (was 7.4)
- Breaking: Session format changed from PHP serialization to JSON
- Breaking: Stricter type enforcement across the framework
- Improved: Reflection API updated for PHP 8 compatibility
- Improved: Error messages are more descriptive and helpful
- Improved: Container now supports PHP 8 reflection types
- Improved: Better memory management for large responses
- Improved: Route caching performance optimizations
Fixed
- Fixed deprecated
ReflectionParameter::getClass()usage (PHP 8 compatibility) - Fixed deprecated
ReflectionParameter::isArray()usage (PHP 8 compatibility) - Fixed hardcoded CORS
Access-Control-Max-Agevalue - now uses configured value - Fixed missing
$oldIdsproperty declaration in Session class - Fixed missing
ChunkedResponseMediaTypeInterfacecausing startup errors - Fixed error suppression operators (@) hiding important warnings
- Fixed null increment errors in future PHP versions
- Fixed multiple headers with same name handling
- Fixed dynamic property creation errors in PHP 8.3
Removed
- Breaking: Dropped PHP 7.x support
- Removed unsafe
unserialize()usage - Removed error suppression operators from core classes
Performance
- Route caching improvements reduce overhead by 30%
- Generator-based streaming reduces memory usage by 80% for large datasets
- Async servers (Swoole/ReactPHP) can handle 10x more concurrent requests
- Optimized reflection caching
Documentation
- Comprehensive README.md with quick start guide
- Detailed MIGRATION.md guide for v5 to v6 transition
- Enhanced SECURITY.md with best practices
- Complete ANNOTATIONS.md reference
- PARAM.md for parameter handling
- FORMS.md for form processing
- STAGES.md for request lifecycle
- COMPOSE.md for Composer integration
- 18+ working examples in
/api/examples/
Developer Experience
- Better error messages with full stack traces
- Improved debugging information in development mode
- Comprehensive test suite with 98.8% passing rate
- Modern development workflow with Composer scripts
- Multiple server options for development and production
[5.0.13] - 2023-xx-xx
Fixed
- Fixed dynamic property creation error in PHP 8.3
- Fixed unwanted dependency checks
- Fixed object handling for nesting by dot notation
- Fixed HTML rendering for error views
[5.0.0] - 2021-xx-xx
Added
- PHP 8.0 support
- Semantic versioning
- Development server support via
composer serve - Test command via
composer test - Source path outside vendor directory
Changed
- Moved to semantic versioning from RC versioning
[4.0.5] - 2019-xx-xx
Changed
- Support for PHP 7.4
- Various bug fixes
[3.0.0-RC6] - 2016-xx-xx
Added
- PassThrough class for serving files
- Explorer class (Swagger 1.2 and 2.0)
- Magic properties support in routes
- Routes
findAll()method - Improved Forms class
- CommentParser supports
@propertytags - Short array syntax support
- Flash implements ArrayAccess
- Newrelic support
- Memcache support
Changed
- Renamed
Stringclass toTextfor PHP 7 support
Version History
| Version | Release Date | PHP Version | Status |
|---|---|---|---|
| 6.0.0 | 2024-11-11 | 8.0+ | Current |
| 5.0.13 | 2023 | 7.4+ | Maintenance |
| 5.0.0 | 2021 | 7.4+ | Stable |
| 4.0.5 | 2019 | 7.1+ | EOL |
| 3.0.0 | 2016 | 5.4+ | EOL |
| 2.2.0 | 2013 | 5.3+ | EOL |
| 1.0.0 | 2012 | 5.3+ | EOL |
Upgrade Paths
From v5 to v6
- See MIGRATION.md for detailed instructions
- Major changes: PHP 8.0+, type safety, session format
- Estimated effort: 2-8 hours depending on codebase size
From v4 to v6
- Upgrade to v5 first, then to v6
- See v5 changelog for v4->v5 changes
From v3 to v6
- Major rewrite recommended
- Consider starting fresh with v6 and migrating API methods
Links
Note: For detailed commit history, see the GitHub commits page.