league/flysystem-vfs
Flysystem adapter for the PHP VFS library that lets you mount and use a virtual filesystem with Flysystem. Install via Composer and pass a VfsAdapter to a new Filesystem instance.
Storage::fake(), or hand-roll a fake?” This package is the “buy” option at one Composer dependency — but only if it installs cleanly against the current stack.michael-donat/php-vfs. This package is a thin bridge; adopting it means inheriting php-vfs behavior, limitations, and maintenance status.Storage::fake() or the maintained league/flysystem-memory / InMemoryFilesystemAdapter.mikey179/vfsstream instead when the need is a mature, widely adopted virtual filesystem for PHP tests with stronger community support.For executives (30 seconds): This is a small, MIT-licensed PHP library that lets file-handling code run against a fake in-memory filesystem during automated testing. The benefit is faster, more isolated tests and fewer CI failures caused by disk state. The catch is that it is effectively unmaintained — last release in 2016 — and it only fits the older Flysystem version used by legacy Laravel applications. Recommendation: do not add it as a new dependency; confirm whether our current stack already provides an official in-memory adapter through Storage::fake() or league/flysystem-memory, which delivers the same testing benefit with far less maintenance risk.
For engineering: This is a thin VfsAdapter bridge between michael-donat/php-vfs and Flysystem 1.x. It is a test double, not a storage engine. Before any adoption, verify the installed Flysystem major version: on Flysystem 2.x/3.x, the adapter contract is different and Composer will likely refuse co-installation. Also assess stream-wrapper lifecycle issues, metadata divergence, memory bounds, and the cost of owning a fork. If a legacy path must use it, wrap it behind an internal VirtualFilesystem contract, pin versions, vendor the dependency, and document that it never touches production code paths.
Decision requested: approve a short evaluation — roughly half a day — to confirm our Flysystem version and compare this package against Laravel’s Storage::fake(), league/flysystem-memory, and mikey179/vfsstream. Default recommendation: use a maintained option; adopt this package only for an isolated legacy Flysystem 1.x case with a named internal owner.
How can I help you explore Laravel packages today?