PHPackages                             plan2net/fake-fal - 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. plan2net/fake-fal

AbandonedArchivedTypo3-cms-extension

plan2net/fake-fal
=================

TYPO3 Local FAL storage driver for fake files

3.1.0(3y ago)127.0k↓100%4[2 issues](https://github.com/plan2net/fake-fal/issues)GPL-3.0PHPPHP &gt;=7.4

Since Mar 24Pushed 3y ago6 watchersCompare

[ Source](https://github.com/plan2net/fake-fal)[ Packagist](https://packagist.org/packages/plan2net/fake-fal)[ Docs](https://www.plan2.net/)[ RSS](/packages/plan2net-fake-fal/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (23)Used By (0)

plan2net/fake-fal
=================

[](#plan2netfake-fal)

Create missing files on the fly for testing/development.

What does it do?
================

[](#what-does-it-do)

Instead of keeping gigabytes of files in sync with your test/development system, the extension creates useful fake files. It acts like a local file driver and creates missing files with the correct file signature (and in case of images in the original file's dimensions) and folders, so PHP's finfo (and others) return the correct mime type.

You can let the extension create fake files on the fly (when visiting a page in the browser) or create fake files for all files which are not available on disk at once via a command (Backend &gt; Scheduler or command line).

[![fake-fal Example](Resources/Public/Screenshots/example.png)](Resources/Public/Screenshots/example.png)

Installation
============

[](#installation)

Require the composer package:

```
composer require "plan2net/fake-fal" --dev

```

Activate the extension in the Extension Manager and update the settings.

You have to explicitely set the flag `enable` to register the fake local driver.

```
enable = 1 (default is 0 = inactive)

```

Set an image generator

```
imageGeneratorType = Plan2net\FakeFal\Resource\Generator\LocalFakeImageGenerator

```

(Currently there's only one local image generator available, so just stick with the default value)

Save the configuration.

After activating the local fake driver globally, you have to activate the fake mode for specific local storages. Either via backend (by editing the storage record) or via command line command:

```
fake-fal:toggle

```

will set all local storages to fake mode.

```
fake-fal:toggle 2,14,99

```

will set the given storages (with ID `2`, `14` and `99`) to fake mode.

Available Commands:
-------------------

[](#available-commands)

```
fake-fal:list

```

List all existing storages as a table (command line only)

```
typo3 fake-fal:list
+----+---------------------------+--------+-----------+
| ID | Name                      | Driver | Fake mode |
+----+---------------------------+--------+-----------+
| 1  | fileadmin/ (auto-created) | Local  | enabled   |
| 2  | fileadmin_sec/            | Local  | disabled  |
+----+---------------------------+--------+-----------+

```

```
fake-fal:toggle

```

Set given storage(s) to fake mode: check flag for fake mode, clear processed files

```
fake-fal:create

```

Create fake files within given storage(s); the existing real files will be kept

Compatibility
=============

[](#compatibility)

The recent extension version works with TYPO3 CMS 10/11 and PHP &gt;= 7.4. Use the versions &lt; 3.0 for TYPO3 8 and 9 and PHP &gt;= 7.0.

Integration information
=======================

[](#integration-information)

We extend the core class `\TYPO3\CMS\Core\Resource\ResourceFactory` to overcome the hardcoded check with `is_file` in the method `retrieveFileOrFolderObject` and we extend the core class `\TYPO3\CMS\Core\Resource\ResourceStorage` to reset the `isOnline` flag of the storage. Just be aware of this if you use any other extension doing so or extend the class yourself.

Alternatives
============

[](#alternatives)

There's the [*filefill*](https://github.com/IchHabRecht/filefill) extension from Nicole Cordes.

Here's the story: I had the idea for *plan2net/fake-fal* for quite a while and there was a Fedex Day (a day where we explore new ideas and create cool things in our company) I wanted to create this extension. The result after one day of coding was the first working version.

This was around two weeks after Nicole published her extension. I didn't know anything about it. A week later a colleague said

> Hey, I heard about an extension that sounds like yours!

At first I was dissappointed, but gladly there's quite a difference.

*plan2net/fake-fal* works offline and creates the files locally. Additionally the file dimensions are written into the fake images. And if you download a fake PDF it will behave like a real document.

###  Health Score

38

—

LowBetter than 84% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 67.4% 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 ~81 days

Recently: every ~232 days

Total

20

Last Release

1425d ago

Major Versions

0.9.2 → 1.0.02018-08-06

1.0.0 → 2.0.02019-01-23

2.4.2 → 3.0.02020-08-31

PHP version history (4 changes)2.0.0PHP &gt;=7.1

2.1.3PHP &gt;=7.0

3.0.0PHP &gt;=7.2

3.1.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/f4ea950f22b43e010ba4f0a6effb0928a6a1d11f64d36cec0d030b757bdfa85e?d=identicon)[wazum](/maintainers/wazum)

![](https://www.gravatar.com/avatar/fdc5d7c9be0f04c0d84c56db1e263fb7cb88c40564a7c293f1a2d4aa543f0115?d=identicon)[plan2net@packagist](/maintainers/plan2net@packagist)

---

Top Contributors

[![wazum](https://avatars.githubusercontent.com/u/146727?v=4)](https://github.com/wazum "wazum (29 commits)")[![ikonplant](https://avatars.githubusercontent.com/u/23386283?v=4)](https://github.com/ikonplant "ikonplant (7 commits)")[![masi](https://avatars.githubusercontent.com/u/690355?v=4)](https://github.com/masi "masi (5 commits)")[![42lizard](https://avatars.githubusercontent.com/u/222642689?v=4)](https://github.com/42lizard "42lizard (1 commits)")[![GaryWilsonJr](https://avatars.githubusercontent.com/u/20659548?v=4)](https://github.com/GaryWilsonJr "GaryWilsonJr (1 commits)")

---

Tags

development-environmentextensiontypo3developmentextensiontypo3fal

### Embed Badge

![Health badge](/badges/plan2net-fake-fal/health.svg)

```
[![Health](https://phpackages.com/badges/plan2net-fake-fal/health.svg)](https://phpackages.com/packages/plan2net-fake-fal)
```

###  Alternatives

[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1182.8k](/packages/leuchtfeuer-locate)[netresearch/contexts

Multi-channel content visibility for TYPO3 - by Netresearch

1117.4k1](/packages/netresearch-contexts)

PHPackages © 2026

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