Releases: iprodev/PHP-EasyCache
Releases · iprodev/PHP-EasyCache
v3.0.2
Fixed
- 🐛 Lock resource handling - Fixed
TypeErrorinLock::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
finalkeyword to allow extension byEasyCachewrapper class - 📝 PHPUnit config - Updated schema to 10.5, disabled
failOnWarningto prevent CI failures from optional extension warnings - 📝 PHPStan config - Excluded
src/Laravelfolder (requires Laravel dependencies), added Predis ignore pattern for optional dependency
v3.0.1
[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
[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, anddefermode. - 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,
EasyCacheFacade, andconfig/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 + renameand read/write locks.