PHPackages                             collecthor/flysystem-adapters - 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. collecthor/flysystem-adapters

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

collecthor/flysystem-adapters
=============================

Meta adapters for FlySystem v3

v2.4.1(1y ago)120.4k[2 PRs](https://github.com/collecthor/flysystem-adapters/pulls)MITPHPPHP &gt;=8.3CI passing

Since Mar 2Pushed 1y ago1 watchersCompare

[ Source](https://github.com/collecthor/flysystem-adapters)[ Packagist](https://packagist.org/packages/collecthor/flysystem-adapters)[ RSS](/packages/collecthor-flysystem-adapters/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (13)Versions (20)Used By (0)

Flysystem Meta Adapters
=======================

[](#flysystem-meta-adapters)

Flysystem uses adapters as an abstraction for storage implementations. This library contains a set of meta-adapters that take 1 or more adapters as their input and expose them as a normal adapter.

OverlayAdapter
--------------

[](#overlayadapter)

While Flysystem has a mount manager, this requires explicit knowledge of the mounts on the consumer side. For separating concerns this is not ideal. Imagine just exposing an adapter to your code (via a `FileSystem`) and having the magic of different backends be handled on the configuration side.

The `OverlayAdapter` for example could allow you to have any `Flysystem` compatible file browser and use it to browse a virtual filesystem that consists of both real files on S3 storage, real files on local storage and virtual directories pulled from your database.

DirectoryViaPlaceholderFileAdapter
----------------------------------

[](#directoryviaplaceholderfileadapter)

Some storages don't support directories. Many of the S3 based stores don't have directories as a concept. This adapter adds supports for directories by using a placeholder file. The idea being that a file in a path defines a directory.

MetadataCachingAdapter
----------------------

[](#metadatacachingadapter)

Some APIs have 1 API call for getting all metadata. This adapter caches that so that you don't see multiple API requests for calls to `lastModified` and `size` on the same file. Use this only for adapters that retrieve all metadata for calls to `lastModified` and `mimeType` etc.

StripPrefixAdapter
------------------

[](#stripprefixadapter)

Removes a prefix from all paths passed to the adapter. Used in combination with the `OverlayAdapter` to mount one adapter inside a path of another.

AddPrefixAdapter
----------------

[](#addprefixadapter)

Adds a prefix to all paths passed to the adapter. Used in combination with the `OverlayAdapter` to mount one adapter inside a path of another.

VirtualDirectoryListAdapter
---------------------------

[](#virtualdirectorylistadapter)

Sometimes you want to have a directory available for each entity in your system, imagine a folder for each user. If there are many users getting the list from the storage API might be slow, but you already have the list in your local database. By using this adapter you can specify a list of directories in a specific path on the underlying adapter.

OverlayAdapter
--------------

[](#overlayadapter-1)

Mount one adapter onto another using a path prefix.

EventedAdapter
--------------

[](#eventedadapter)

This adapter uses a PSR-14 `EventDispatcher` to dispatch events before and after operations that modify storage. Initial use case for them is to notify CDNs to update their cache.

MoveOverwriteAdapter
--------------------

[](#moveoverwriteadapter)

This adapter wraps any other adapter and will try to force an overwrite if moving a file fails. This means upon failure it will check if the destination file exists and if so remove it and retry the move command.

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance40

Moderate activity, may be stable

Popularity28

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 96.6% 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 ~59 days

Recently: every ~14 days

Total

17

Last Release

586d ago

Major Versions

v1.4.0 → v2.0.02024-08-08

PHP version history (3 changes)v1.0.0PHP &gt;8.1

v1.0.1PHP &gt;= 8.1

v2.0.0PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/18b13c534e3812b66a72645fe215301b54fc4d288f6396fee9385b681e27da18?d=identicon)[SamMousa](/maintainers/SamMousa)

---

Top Contributors

[![SamMousa](https://avatars.githubusercontent.com/u/547021?v=4)](https://github.com/SamMousa "SamMousa (86 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")

---

Tags

filesystemflysystemstorage

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/collecthor-flysystem-adapters/health.svg)

```
[![Health](https://phpackages.com/badges/collecthor-flysystem-adapters/health.svg)](https://phpackages.com/packages/collecthor-flysystem-adapters)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M790](/packages/league-flysystem-aws-s3-v3)[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.2k3.3M74](/packages/unisharp-laravel-filemanager)[league/flysystem-local

Local filesystem adapter for Flysystem.

225231.8M39](/packages/league-flysystem-local)[league/flysystem-bundle

Symfony bundle integrating Flysystem into Symfony applications

40129.5M87](/packages/league-flysystem-bundle)[league/flysystem-sftp-v3

SFTP filesystem adapter for Flysystem.

6129.6M91](/packages/league-flysystem-sftp-v3)[league/flysystem-memory

In-memory filesystem adapter for Flysystem.

8533.6M194](/packages/league-flysystem-memory)

PHPackages © 2026

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