1.6.?? (2022-??-??) ------------------- * Add support for PHP 8.2's `$content` property in `vfsStreamWrapper` 1.6.10 (2021-09-25) ------------------- * Fix more deprecation warnings for PHP 8.1 support affecting the following: - `vfsStreamContainerIterator::current()` - `vfsStreamContainerIterator::next()` - `vfsStreamContainerIterator::key()` - `vfsStreamContainerIterator::rewind()` - `vfsStreamDirectory::getIterator()` - `vfsStreamPrintVisitor::printContent()` * Fix PHP 8.1 support in `vfsStreamPrintVisitor` 1.6.9 (2021-07-16) ------------------ * Fix deprecation warning on `StringBasedFileContent` for PHP 8.1 (#252) * Fix return type for `FileContent::write()` to fix static analysis tools 1.6.8 (2019-10-30) ------------------ * Fix `StringBasedFileContent::doRead` to always return a string (#204) 1.6.7 (2019-07-31) ------------------ * fix PHP 7.4 deprecation warnings (backported #189 from master) 1.6.6 (2019-04-08) ------------------ * backported #174 from master, original PR provided by @localheinz 1.6.5 (2017-08-01) ------------------ * fixed #157 seeking before beginning of file should fail, reported and fixed by @merijnvdk * structure array in `vfsStream::create()` and `vfsStream::setup()` now can contain instances of `org\bovigo\vfs\content\FileContent` and `org\bovigo\vfs\vfsStreamFile`, patch provivded by Joshua Smith (@jsmitty12) 1.6.4 (2016-07-18) ------------------ * fixed #134 type safe directory names, reported and fixed by Sebastian Hopfe 1.6.3 (2016-04-09) ------------------ * fixed #131 recursive mkdir() fails if the last dirname is '0' 1.6.2 (2016-01-13) ------------------ * fixed #128 duplicate "valid" files/directories and incorrect file names 1.6.1 (2015-12-04) ------------------ * `vfsStream::url()` didn't urlencode single path parts while `vfsStream::path()` did urldecode them * fixed #120, #122: create directory with trailing slash results in "Uninitialized string offset: 0" 1.6.0 (2015-10-06) ------------------ * added `vfsStreamWrapper::unregister()`, provided by @malkusch with #114 * fixed #115: incorrect handling of `..` in root directory on PHP 5.5, fix provided by @acoulton with #116 1.5.0 (2015-03-29) ------------------ * implemented #91: `vfsStream::copyFromFileSystem()` should create large file instances * implemented #92: `vfsStream::copyFromFileSystem()` should respect block devices * fixed #107: `touch()` does not respect file permissions * fixed #105: vfs directory structure is not reset after each test * fixed #104: vfsStream can't handle url encoded pathes 1.4.0 (2014-09-14) ------------------ * implemented #85: Added support for emulating block devices in the virtual filesystem, feature provided by Harris Borawski * fixed #68: Unlink a non-existing file now triggers a PHP warning 1.3.0 (2014-07-21) ------------------ * implemented #79: possibility to mock large files without large memory footprint, see https://github.com/mikey179/vfsStream/wiki/MockingLargeFiles * implemented #67: added partial support for text-mode translation flag (i.e., no actual translation of line endings takes place) so it no longer throws an exception (provided by Anthon Pang) * fixed issue #74: issue with trailing windows path separators (provided by Sebastian Krüger) * fixed issue #50: difference between real file system and vfs with `RecursiveDirectoryIterator` * fixed issue #80: touch with no arguments for modification and access time behave incorrect * deprecated `org\bovigo\vfs\vfsStreamFile::readUntilEnd()` * deprecated `org\bovigo\vfs\vfsStreamFile::getBytesRead()` 1.2.0 (2013-04-01) ------------------ * implemented issue #34: provide `url()` method on all `vfsStreamContent` instances * added `org\bovigo\vfs\vfsStreamContent::url()` * added `org\bovigo\vfs\vfsStreamContent::path()` * fixed issue #40: flock implementation doesn't work correctly, patch provided by Kamil Dziedzic * fixed issue #49: call to member function on a non-object when trying to delete a file one above root where a file with same name in root exists * fixed issue #51: `unlink()` must consider permissions of directory where file is inside, not of the file to unlink itself * fixed issue #52: `chmod()`, `chown()` and `chgrp()` must consider permissions of directory where file/directory is inside * fixed issue #53: `chmod()`, `chown()` and `chgrp()` must consider current user and current owner of file/directoy to change 1.1.0 (2012-08-25) ------------------ * implemented issue #11: add support for `streamWrapper::stream_metadata()` vfsStream now supports `touch()`, `chown()`, `chgrp()` and `chmod()` * implemented issue #33: add support for `stream_truncate()` (provided by https://github.com/nikcorg) * implemented issue #35: size limit (quota) for VFS 1.0.0 (2012-05-15) ------------------ * raised requirement for PHP version to 5.3.0 * migrated codebase to use namespaces * changed distribution from PEAR to Composer * implemented issue #30: support "c" mode for `fopen()` * fixed issue #31: prohibit aquiring locks when already locked / release lock on `fclose()` * fixed issue #32: problems when subfolder has same name as folder * fixed issue #36: `vfsStreamWrapper::stream_open()` should return false while trying to open existing non-writable file, patch provided by Alexander Peresypkin 0.11.2 (2012-01-14) ------------------- * fixed issue #29: set permissions properly when using `vfsStream::copyFromFileSystem()`, patch provided by predakanga * fixed failing tests under PHP > 5.3.2 0.11.1 (2011-12-04) ------------------- * fixed issue #28: `mkdir()` overwrites existing directories/files 0.11.0 (2011-11-29) ------------------- * implemented issue #20: `vfsStream::create()` removes old structure * implemented issue #4: possibility to copy structure from existing file system * fixed issue #23: `unlink()` should not remove any directory * fixed issue #25: `vfsStreamDirectory::hasChild()` gives false positives for nested paths, patch provided by Andrew Coulton * fixed issue #26: opening a file for reading only should not update its modification time, reported and initial patch provided by Ludovic Chabant 0.10.1 (2011-08-22) ------------------- * fixed issue #16: replace `vfsStreamContent` to `vfsStreamContainer` for autocompletion * fixed issue #17: `vfsStream::create()` has issues with numeric directories, patch provided by mathieuk 0.10.0 (2011-07-22) ------------------- * added new method `vfsStreamContainer::hasChildren()` and `vfsStreamDirectory::hasChildren()` * implemented issue #14: less verbose way to initialize vfsStream * implemented issue #13: remove deprecated method `vfsStreamContent::setFilemtime()` * implemented issue #6: locking meachanism for files * ensured that `stream_set_blocking()`, `stream_set_timeout()` and `stream_set_write_buffer()` on vfsStream urls have the same behaviour with PHP 5.2 and 5.3 * implemented issue #10: method to print directory structure 0.9.0 (2011-07-13) ------------------ * implemented feature request issue #7: add support for `fileatime()` and `filectime()` * fixed issue #3: add support for `streamWrapper::stream_cast()` * fixed issue #9: resolve path not called everywhere its needed * deprecated `vfsStreamAbstractContent::setFilemtime()`, use `vfsStreamAbstractContent::lastModified()` instead, will be removed with 0.10.0 0.8.0 (2010-10-08) ------------------ * implemented enhancement #6: use `vfsStream::umask()` to influence initial file mode for files and directories * implemented enhancement #19: support of .. in the url, patch provided by Guislain Duthieuw * fixed issue #18: `getChild()` returns NULL when child's name contains parent name * fixed bug with incomplete error message when accessing non-existing files on root level 0.7.0 (2010-06-08) ------------------ * added new `vfsStream::setup()` method to simplify vfsStream usage * fixed issue #15: `mkdir()` creates a subfolder in a folder without permissions 0.6.0 (2010-02-15) ------------------ * added support for `$mode` param when opening files, implements enhancement #7 and fixes issue #13 * `vfsStreamWrapper::stream_open()` now evaluates `$options` for `STREAM_REPORT_ERRORS` 0.5.0 (2010-01-25) ------------------ * added support for `rename()`, patch provided by Benoit Aubuchon * added support for . as directory alias so that `vfs://foo/.` resolves to `vfs://foo`, can be used as workaround for bug #8 0.4.0 (2009-07-13) ------------------ * added support for file modes, users and groups (with restrictions, see http://code.google.com/p/bovigo/wiki/vfsStreamDocsKnownIssues) * fixed bug #5: `vfsStreamDirectory::addChild()` does not replace child with same name * fixed bug with `is_writable()` because of missing `stat()` fields, patch provided by Sergey Galkin 0.3.2 (2009-02-16) ------------------ * support trailing slashes on directories in vfsStream urls, patch provided by Gabriel Birke * fixed bug #4: vfsstream can only be read once, reported by Christoph Bloemer * enabled multiple iterations at the same time over the same directory 0.3.1 (2008-02-18) ------------------ * fixed path/directory separator issues under linux systems * fixed uid/gid issues under linux systems 0.3.0 (2008-01-02) ------------------ * added support for `rmdir()` * added `vfsStream::newDirectory()`, dropped `vfsStreamDirectory::ceate()` * added new interface `vfsStreamContainer` * added `vfsStreamContent::at()` which allows code like `$file = vfsStream::newFile('file.txt.')->withContent('foo')->at($otherDir);` * added `vfsStreamContent::lastModified()`, made `vfsStreamContent::setFilemtime()` an alias for this * moved from Stubbles development environment to bovigo * refactorings to reduce crap index of various methods 0.2.0 (2007-12-29) ------------------ * moved `vfsStreamWrapper::PROTOCOL` to `vfsStream::SCHEME` * added new `vfsStream::url()` method to assist in creating correct vfsStream urls * added `vfsStream::path()` method as opposite to `vfsStream::url()` * a call to `vfsStreamWrapper::register()` will now reset the root to null, implemented on request from David Zuelke * added support for `is_readable()`, `is_dir()`, `is_file()` * added `vfsStream::newFile()` to be able to do `$file = vfsStream::newFile("foo.txt")->withContent("bar");` 0.1.0 (2007-12-14) ------------------ * Initial release.