Releases: dg/bypass-finals
Releases · dg/bypass-finals
Released version 1.10.1
✨ New Features
- bootstrap.php – activate BypassFinals at the earliest possible moment, before
vendor/autoload.phploads, so nothing slips through unmodified (#74, #58)
🐛 Bug Fixes
- Fixed
proc_open()when given a['file', ...]descriptor spec – the native wrapper no longer chokes on file-based descriptors (#43) - Fixed premature EOF:
stream_eof()now waits for an actual empty read before reporting end-of-stream, preventing truncated reads (#75, #50) - The cache directory is now created recursively, so deeply nested cache paths just work out of the box (#70, #66)
- Cleared the stat cache after the
is_dir()check instream_open(), fixing stale filesystem state on cache writes (#69, #67) - Fixed
debugInfo()output so bypass tokens are reported correctly (#68) NativeWrapper::stream_seek()now detects whether the underlying stream is actually seekable instead of blindly seeking (#63)- Final-token removal now preserves constant names, so identifiers that happen to look like the
finalkeyword survive untouched (#64) - Added a
T_READONLYconstant polyfill for PHP < 8.1, keeping older runtimes happy (51736af) - Consolidated all cache I/O into a single native stream-wrapper cycle, simplifying the read/write path and reducing wrapper churn (#71, #55)
Released version 1.9.0
- Make PHPUnitExtension configurable (#59)
- added BypassFinals::debugInfo()
Released version 1.8.0
- BypassFinals: added allowPaths() & denyPath()
- PHPUnitExtension: denies path 'vendor/phpunit'
Released version 1.7.0
Released version 1.6.0
- added PHPUnitExtension
- NativeWrapper: implemented stream_set_option()
- MutatingWrapper has been separated from BypassFinals
Released version 1.5.1
DG\BypassFinals::enable(bypassReadOnly: false);
Released version 1.5.0
- removes keyword 'readonly' too [Closes #39]
Released version 1.4.0
- implemented cache
- calls previous wrapper if one was set [Closes #9]
- divided into classes BypassFinals & NativeWrapper
- fixed some bugs
- tested in PHP 8.2
Released version 1.3.1
Released version 1.2.0
- requires PHP 7.1
- Add
setWhitelist()method to allow controlling which files get replaced. (#7)