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() with json_encode/json_decode to prevent PHP object injection attacks (CRITICAL fix)
  • JSONP Validation: Added callback name validation to prevent XSS attacks
  • Template Hardening: Added EXTR_SKIP flag to extract() 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-Age value - now uses configured value
  • Fixed missing $oldIds property declaration in Session class
  • Fixed missing ChunkedResponseMediaTypeInterface causing 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 @property tags
  • Short array syntax support
  • Flash implements ArrayAccess
  • Newrelic support
  • Memcache support

Changed

  • Renamed String class to Text for PHP 7 support

Version History

VersionRelease DatePHP VersionStatus
6.0.02024-11-118.0+Current
5.0.1320237.4+Maintenance
5.0.020217.4+Stable
4.0.520197.1+EOL
3.0.020165.4+EOL
2.2.020135.3+EOL
1.0.020125.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


Note: For detailed commit history, see the GitHub commits page.