PHPackages                             noccylabs/virtfs - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. noccylabs/virtfs

ActiveLibrary

noccylabs/virtfs
================

Virtual filesystems (like physfs) - with autoloading!

0.1.1.1(11y ago)1121GPL-3.0PHPPHP &gt;=2.4

Since Jul 10Pushed 11y ago1 watchersCompare

[ Source](https://github.com/noccy80/php-virtfs)[ Packagist](https://packagist.org/packages/noccylabs/virtfs)[ RSS](/packages/noccylabs-virtfs/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (1)Versions (4)Used By (1)

VirtFs: Virtual Filesystems for PHP
===================================

[](#virtfs-virtual-filesystems-for-php)

VirtFs is to PHP what PhysFs is to C. It allows you to create a virtual filesystem root, to then attach directories and archives to it, optionally mounted in their own virtual path in the vfs. In addition to this, VirtFs also registers a StreamWrapper to give you access to the VFS via a stream prefix, such as "userdata://..".

```
$vfs = new VirtFs("dirs");
$vfs->add(new DirectoryMounter("./dir_a", "a"));
$vfs->add(new DirectoryMounter("./dir_b", "b"));

```

What we have now is:

```
      /      The filesystem root
      |--a   The contents of ./dir_a
      '--b   The contents of ./dir_b

```

In the above example, these would be valid:

```
dirs://a/hello.txt      -  ./dir_a/hello.txt
dirs://b/foo            -  ./dir_b/foo

```

Plugin behavior
---------------

[](#plugin-behavior)

To load plugins from individual .zip-archives, or directly from one or more plugin directories, see [examples/autoloading/](examples/autoloading/). These examples also demonstrates the autoloader

### Autoloader

[](#autoloader)

To be able to autoload classes from a VirtFs filesystem, use the `VirtFsLoader`class:

```
use NoccyLabs\VirtFs\VirtFsLoader;

$loader = new VirtFsLoader($virtfs);
$loader->register

```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

3

Last Release

4310d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1434055?v=4)[Christopher Vagnetoft](/maintainers/noccy80)[@noccy80](https://github.com/noccy80)

---

Top Contributors

[![noccy80](https://avatars.githubusercontent.com/u/1434055?v=4)](https://github.com/noccy80 "noccy80 (9 commits)")

---

Tags

autoloadphysfsvirtual filesystem

### Embed Badge

![Health badge](/badges/noccylabs-virtfs/health.svg)

```
[![Health](https://phpackages.com/badges/noccylabs-virtfs/health.svg)](https://phpackages.com/packages/noccylabs-virtfs)
```

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.4k187.2M2.6k](/packages/composer-composer)[nette/robot-loader

🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.

89152.7M321](/packages/nette-robot-loader)[classpreloader/classpreloader

Helps class loading performance by generating a single PHP file containing all of the autoloaded files for a specific use case

37642.4M32](/packages/classpreloader-classpreloader)[funkjedi/composer-include-files

Include files at a higher priority than autoload files.

1263.2M19](/packages/funkjedi-composer-include-files)[automattic/jetpack-autoloader

Creates a custom autoloader for a plugin or theme.

525.5M69](/packages/automattic-jetpack-autoloader)[aura/autoload

Provides a PSR-4 compliant autoloader implementation.

94476.8k12](/packages/aura-autoload)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
