What's Changed
⚠️ Breaking Changes
- Minimum PHP version increased from 8.1 to 8.2
- Removed
markrogoyski/math-phpdependency - replaced with pure PHP implementation
✨ Performance & Architecture Improvements
CUID Generation:
- CUID value now generated in constructor and cached for zero-overhead repeated access
- Previously computed on-demand, now provides predictable performance characteristics
Fingerprint Refactor:
- Changed from array-based to binary string storage (SHA3-512 hash)
- Added singleton protections (
__clone,__wakeup) to prevent misuse - Platform-specific hostname length constants for Windows/Unix systems
- Improved documentation and type safety
Counter Improvements:
- Now uses PHP 8.2's
Random\RandomizerwithSecureengine - Automatic bias-free sampling (eliminates manual rejection sampling)
- Cleaner, more maintainable implementation
Base Conversion:
- New
Utilsclass with optimized base36 conversion algorithm - Uses intermediate large base (100 million) for efficient arithmetic
- Pure PHP implementation, zero external dependencies
- GMP still recommended for optimal performance
📚 Documentation
- Added comprehensive
CONTRIBUTING.mdwith development guidelines - Updated
README.mdwith improved documentation - Enhanced inline documentation across core classes
🔧 Maintenance
- Stronger composer cache key for CI
- Updated Renovate configuration
- Dependency updates via Renovate bot
Full Changelog: 5.2.0...6.0.0