- Add inode support
- raised minimum required PHP version to 7.2.0
- all methods of
bovigo\vfs\visitor\vfsStreamVisitorare now declared withselfas return type StreamWrapper::setRoot()andStreamWrapper::getRoot()method signatures now require and returnbovigo\vfs\vfsDirectoryvicebovigo\vfs\vfsStreamContainer.vfsStream::newFile(),vfsStream::newBlock(),bovigo\vfs\vfsFile, andbovigo\vfs\vfsBlockwill throw an exception if the filename contains a forward slash (/).- removed deprecated classes and interfaces
bovigo\vfs\vfsStreamContentbovigo\vfs\vfsStreamContainerbovigo\vfs\content\SeekableFileContent
- Namespace changed from
org\bovigo\vfstobovigo\vfs- The old namespace still works, but has been deprecated. It will be removed in version 2.
- Renamed some classes in the new namespace. When moving your code to the new namespace please be aware of the following name changes:
org\bovigo\vfs\vfsStreamBlock=>bovigo\vfs\vfsBlockorg\bovigo\vfs\vfsStreamContainerIterator=>bovigo\vfs\vfsDirectoryIteratororg\bovigo\vfs\vfsStreamDirectory=>bovigo\vfs\vfsDirectoryorg\bovigo\vfs\vfsStreamFile=>bovigo\vfs\vfsFileorg\bovigo\vfs\vfsStreamWrapper=>bovigo\vfs\StreamWrapperorg\bovigo\vfs\visitor\vfsStreamAbstractVisitor=>bovigo\vfs\visitor\BaseVisitororg\bovigo\vfs\visitor\vfsStreamPrintVisitor=>bovigo\vfs\visitor\Printerorg\bovigo\vfs\visitor\vfsStreamStructureVisitor=>bovigo\vfs\visitor\StructureInspectororg\bovigo\vfs\vfsStreamAbstractContent=>bovigo\vfs\BasicFile
- Deprecated (internal) classes and interfaces, they will be removed in version 2.
org\bovigo\vfs\vfsStreamContentorg\bovigo\vfs\vfsStreamContainerorg\bovigo\vfs\content\SeekableFileContent
- raised requirement for minimum PHP version to 5.6.0
- Fix
StringBasedFileContent::doReadto always return a string (#204)
- fix PHP 7.4 deprecation warnings (backported #189 from master)
- backported #174 from master, original PR provided by @localheinz
- fixed #157 seeking before beginning of file should fail, reported and fixed by @merijnvdk
- structure array in
vfsStream::create()andvfsStream::setup()now can contain instances oforg\bovigo\vfs\content\FileContentandorg\bovigo\vfs\vfsStreamFile, patch provided by Joshua Smith (@jsmitty12)
- fixed #134 type safe directory names, reported and fixed by Sebastian Hopfe
- fixed #131 recursive mkdir() fails if the last dirname is '0'
- fixed #128 duplicate "valid" files/directories and incorrect file names
vfsStream::url()didn't urlencode single path parts whilevfsStream::path()did urldecode them- fixed #120, #122: create directory with trailing slash results in "Uninitialized string offset: 0"
- 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
- 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
- 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
- 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()
- implemented issue #34: provide
url()method on allvfsStreamContentinstances- added
org\bovigo\vfs\vfsStreamContent::url() - added
org\bovigo\vfs\vfsStreamContent::path()
- added
- 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()andchgrp()must consider permissions of directory where file/directory is inside - fixed issue #53:
chmod(),chown()andchgrp()must consider current user and current owner of file/directoy to change
- implemented issue #11: add support for
streamWrapper::stream_metadata()vfsStream now supportstouch(),chown(),chgrp()andchmod() - implemented issue #33: add support for
stream_truncate()(provided by https://github.com/nikcorg) - implemented issue #35: size limit (quota) for VFS
- 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
- fixed issue #29: set permissions properly when using
vfsStream::copyFromFileSystem(), patch provided by predakanga - fixed failing tests under PHP > 5.3.2
- fixed issue #28:
mkdir()overwrites existing directories/files
- 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
- fixed issue #16: replace
vfsStreamContenttovfsStreamContainerfor autocompletion - fixed issue #17:
vfsStream::create()has issues with numeric directories, patch provided by mathieuk
- added new method
vfsStreamContainer::hasChildren()andvfsStreamDirectory::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()andstream_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
- implemented feature request issue #7: add support for
fileatime()andfilectime() - fixed issue #3: add support for
streamWrapper::stream_cast() - fixed issue #9: resolve path not called everywhere its needed
- deprecated
vfsStreamAbstractContent::setFilemtime(), usevfsStreamAbstractContent::lastModified()instead, will be removed with 0.10.0
- 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
- added new
vfsStream::setup()method to simplify vfsStream usage - fixed issue #15:
mkdir()creates a subfolder in a folder without permissions
- added support for
$modeparam when opening files, implements enhancement #7 and fixes issue #13 vfsStreamWrapper::stream_open()now evaluates$optionsforSTREAM_REPORT_ERRORS
- added support for
rename(), patch provided by Benoit Aubuchon - added support for . as directory alias so that
vfs://foo/.resolves tovfs://foo, can be used as workaround for bug #8
- 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 missingstat()fields, patch provided by Sergey Galkin
- 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
- fixed path/directory separator issues under linux systems
- fixed uid/gid issues under linux systems
- added support for
rmdir() - added
vfsStream::newDirectory(), droppedvfsStreamDirectory::ceate() - added new interface
vfsStreamContainer - added
vfsStreamContent::at()which allows code like$file = vfsStream::newFile('file.txt.')->withContent('foo')->at($otherDir); - added
vfsStreamContent::lastModified(), madevfsStreamContent::setFilemtime()an alias for this - moved from Stubbles development environment to bovigo
- refactorings to reduce crap index of various methods
- moved
vfsStreamWrapper::PROTOCOLtovfsStream::SCHEME - added new
vfsStream::url()method to assist in creating correct vfsStream urls - added
vfsStream::path()method as opposite tovfsStream::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");
- Initial release.