An open API service indexing awesome lists of open source software.

https://github.com/plan2net/fake-fal

Create fake files for non-existing files from sys_file table for development/testing systems
https://github.com/plan2net/fake-fal

development-environment extension typo3

Last synced: 6 months ago
JSON representation

Create fake files for non-existing files from sys_file table for development/testing systems

Awesome Lists containing this project

README

          

# plan2net/fake-fal

Create missing files on the fly for testing/development.

# 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 > Scheduler or command line).

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

# 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:

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

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

# 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

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.