- Add inode support
- Namespace changed from
org\bovigo\vfs
tobovigo\vfs
- The old namespace will still work, but has been deprecated. It will be removed in version 3.
- raised minimum required PHP version to 7.2.0
- all methods of
bovigo\vfs\visitor\vfsStreamVisitor
are now declared withself
as return type vfsStreamWrapper::setRoot()
andvsfStreamWrapper::getRoot()
method signatures now require and returnbovigo\vfs\vfsStreamDirectory
vicebovigo\vfs\vfsStreamContainer
.vfsStream::newFile()
,vfsStream::newBlock()
,bovigo\vfs\vfsStreamFile
, andbovigo\vfs\vfsStreamBlock
will throw an exception if the filename contains a forward slash (/
).
- Namespace changed from
org\bovigo\vfs
tobovigo\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\vfsBlock
org\bovigo\vfs\vfsStreamContainerIterator
=>bovigo\vfs\vfsDirectoryIterator
org\bovigo\vfs\vfsStreamDirectory
=>bovigo\vfs\vfsDirectory
org\bovigo\vfs\vfsStreamFile
=>bovigo\vfs\vfsFile
org\bovigo\vfs\vfsStreamWrapper
=>bovigo\vfs\StreamWrapper
org\bovigo\vfs\visitor\vfsStreamAbstractVisitor
=>bovigo\vfs\visitor\BaseVisitor
org\bovigo\vfs\visitor\vfsStreamPrintVisitor
=>bovigo\vfs\visitor\Printer
org\bovigo\vfs\visitor\vfsStreamStructureVisitor
=>bovigo\vfs\visitor\StructureInspector
org\bovigo\vfs\vfsStreamAbstractContent
=>bovigo\vfs\BasicFile
- Deprecated (internal) classes and interfaces, they will be removed in version 2.
org\bovigo\vfs\vfsStreamContent
org\bovigo\vfs\vfsStreamContainer
org\bovigo\vfs\content\SeekableFileContent
- raised requirement for minimum PHP version to 5.6.0
- Add support for PHP 8.2's
$context
property invfsStreamWrapper
- 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
- Fix deprecation warning on
StringBasedFileContent
for PHP 8.1 (#252) - Fix return type for
FileContent::write()
to fix static analysis tools
- Fix
StringBasedFileContent::doRead
to 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\FileContent
andorg\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 allvfsStreamContent
instances- 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
vfsStreamContent
tovfsStreamContainer
for 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
$mode
param when opening files, implements enhancement #7 and fixes issue #13 vfsStreamWrapper::stream_open()
now evaluates$options
forSTREAM_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::PROTOCOL
tovfsStream::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.