Skip to content

Releases: iprodev/PHP-EasyCache

v3.0.2

30 Nov 14:26

Choose a tag to compare

Fixed

  • 🐛 Lock resource handling - Fixed TypeError in Lock::release() when called multiple times (e.g., from __destruct() after manual release)
  • 🔧 PHPUnit compatibility - Downgraded PHPUnit from ^11.0 to ^10.0 for PHP 8.1 compatibility
  • 🔧 PHPStan configuration - Updated deprecated config options (checkMissingIterableValueType, checkGenericClassInNonGenericObjectType)
  • 🔧 PHPStan type errors - Fixed comparison type errors in MultiTierCache::readThrough() with explicit int casts
  • 🔧 Code style violations - Fixed PSR-12 violations (trailing whitespace, line length)

Changed

  • ♻️ MultiTierCache - Removed final keyword to allow extension by EasyCache wrapper class
  • 📝 PHPUnit config - Updated schema to 10.5, disabled failOnWarning to prevent CI failures from optional extension warnings
  • 📝 PHPStan config - Excluded src/Laravel folder (requires Laravel dependencies), added Predis ignore pattern for optional dependency

v3.0.1

18 Oct 12:01

Choose a tag to compare

[3.0.1] - 2025-10-18

Added

  • Comprehensive test coverage (80%+ coverage)
    • Unit tests for all storage backends
    • Multi-tier caching tests
    • SWR functionality tests
    • Serialization and compression tests
    • Key validation and lock mechanism tests
  • 📚 Enhanced documentation
    • Complete API reference (API.md)
    • Practical examples guide (EXAMPLES.md)
    • Contributing guidelines (CONTRIBUTING.md)
    • Real-world use cases and patterns
  • 🧪 Quality assurance tools
    • PHPUnit configuration
    • Composer scripts for testing and QA
    • PHPStan baseline support

Improved

  • 🛡️ Error handling across all components
    • Proper exception handling in storage operations
    • Detailed error logging with PSR-3 support
    • Graceful degradation on failures
    • Better error messages and diagnostics
  • 🔒 ApcuStorage improvements
    • Safe clear() that only removes prefixed keys
    • Better APCu availability detection
    • Improved error logging
  • 📁 FileStorage improvements
    • Better directory permission handling
    • Improved error messages
    • More robust file operations
    • Better handling of concurrent access
  • 🔴 RedisStorage improvements
    • Type checking for Redis client
    • Better connection error handling
    • Improved SCAN implementation
  • 💾 PdoStorage improvements
    • Better BLOB handling for PostgreSQL
    • Enhanced error messages
    • Improved has() method with expiration check
  • 🎯 MultiTierCache improvements
    • Better lock directory management
    • Enhanced logging throughout
    • Improved error recovery
    • Better documentation in code

Fixed

  • 🐛 Bug fixes in various storage backends
  • 🔧 Fixed potential race conditions
  • ✅ Improved validation and error handling
  • 📝 Fixed typos and improved code documentation

v3.0.0

09 Oct 15:36

Choose a tag to compare

[3.0.0] - 2025-10-09

Added

  • Full PSR‑16 implementation with multi‑key operations.
  • Multi‑backend tiers: APCu, Redis, File, PDO (MySQL/PostgreSQL/SQLite).
  • Full SWR: getOrSetSWR() with stale‑while‑revalidate and stale‑if‑error, non‑blocking per‑key locks, and defer mode.
  • Pluggable Serializer/Compressor: NativeSerializer & JsonSerializer; Null/Gzip/Zstd.
  • Backfill: hits from lower tiers are written back to faster tiers.
  • Laravel Service Provider with auto‑discovery, EasyCache Facade, and config/easycache.php.
  • Atomic file writes + read locks; directory sharding for file backend.

Changed

  • Record header upgraded to EC02; serializer and compressor names are stored for forward compatibility.

Fixed

  • Eliminated race conditions on file writes with tmp + rename and read/write locks.

v2.0.0

08 Oct 13:27

Choose a tag to compare

Version 2.0.0 Commit

v1.2.1

13 Feb 00:21

Choose a tag to compare

Version 1.2.1 commit

v1.2.0

13 Jul 00:52

Choose a tag to compare

README changed

v1.1.0

12 Jul 15:08

Choose a tag to compare

Version 1.1.0 commit

v1.0.0

06 Jul 15:30

Choose a tag to compare

Initial commit