PHPackages                             giove/filesystem-stream-wrapper - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. giove/filesystem-stream-wrapper

ActiveLibrary[File &amp; Storage](/categories/file-storage)

giove/filesystem-stream-wrapper
===============================

Filesystem stream wrapper

00PHP

Since Mar 28Pushed 7y ago1 watchersCompare

[ Source](https://github.com/Giove/php-filesystem-stream-wrapper)[ Packagist](https://packagist.org/packages/giove/filesystem-stream-wrapper)[ RSS](/packages/giove-filesystem-stream-wrapper/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Filesystem stream wrapper
=========================

[](#filesystem-stream-wrapper)

[![Build Status](https://camo.githubusercontent.com/f22154a58ace0d2abd2f361e5f2f978f347aafe6718683ea00c48dd105734650/68747470733a2f2f7472617669732d63692e6f72672f47696f76652f7068702d66696c6573797374656d2d73747265616d2d777261707065722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Giove/php-filesystem-stream-wrapper)

Usage
-----

[](#usage)

```
try {
    StreamRegistry::register('wrapper', '/real/directory');

    mkdir('wrapper://dir');
    touch('wrapper://dir/file.txt');

    file_put_contents('wrapper://dir/file.txt', 'test content');
    $content = file_get_contents('wrapper://dir/file.txt');

    var_dump($content); //string(12) "test content"

    var_dump(glob('/real/directory/dir/*'));
    /*
    array(1) {
      [0] => string(29) "/real/directory/dir/file.txt"
    }
    */

    StreamRegistry::unregister('wrapper');
} catch (WrapperException $e) {
    //internal handler wraps every notice/warning/error into WrapperException
    $previous = $e->getPrevious();

    throw $e;
}
```

```
try {
    StreamRegistry::register('wrapper', '/real/directory');

    $writer = new \XMLWriter();
    $writer->openUri('wrapper://new-file');
    $writer->startDocument('1.0', 'UTF-8');
    $writer->startElement('lorem');
    $writer->writeRaw('ipsum');

    //flush xml-writer buffer
    $writer->flush();

    //filesystem handle used internally
    $fsHandle = StreamRegistry::getLastHandle('wrapper://new-file');

    //write something to xml file bypassing xml-writer
    fwrite($fsHandle, '-dolor');

    $writer->endElement();
    $writer->endDocument();
    $writer->flush();
    unset($writer);

    echo file_get_contents('/real/directory/new-file');
    /*

        ipsum-dolor
    */

    StreamRegistry::unregister('wrapper');
} catch (WrapperException $e) {
    //handle exception
}
```

Install
-------

[](#install)

```
composer require giove/filesystem-stream-wrapper

```

License
-------

[](#license)

Dual licensed under LGPL v2.1 or LGPL v3.0

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3f940c22f0438a9116e869ec843e7e46ea6d430b7acf4424ac5c93805521592b?d=identicon)[Yavin](/maintainers/Yavin)

---

Top Contributors

[![Yavin](https://avatars.githubusercontent.com/u/1175856?v=4)](https://github.com/Yavin "Yavin (1 commits)")

---

Tags

php

### Embed Badge

![Health badge](/badges/giove-filesystem-stream-wrapper/health.svg)

```
[![Health](https://phpackages.com/badges/giove-filesystem-stream-wrapper/health.svg)](https://phpackages.com/packages/giove-filesystem-stream-wrapper)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[google/cloud-storage

Cloud Storage Client for PHP

34390.8M123](/packages/google-cloud-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15261.6M2.6k](/packages/illuminate-filesystem)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)

PHPackages © 2026

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