PHPackages                             smichaelsen/fal-filewriter - 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. smichaelsen/fal-filewriter

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

smichaelsen/fal-filewriter
==========================

1.1.0(8y ago)1700GPL-2.0+PHP

Since Aug 1Pushed 8y ago1 watchersCompare

[ Source](https://github.com/smichaelsen/typo3-fal-filewriter)[ Packagist](https://packagist.org/packages/smichaelsen/fal-filewriter)[ RSS](/packages/smichaelsen-fal-filewriter/feed)WikiDiscussions master Synced yesterday

READMEChangelog (3)Dependencies (1)Versions (8)Used By (0)

FAL Filewriter [![Build Status](https://camo.githubusercontent.com/b54390e0e67982295906af0c91c6bc5d3a8938de4a543a125ba729e5e5559205/68747470733a2f2f7472617669732d63692e6f72672f736d69636861656c73656e2f7479706f332d66616c2d66696c657772697465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/smichaelsen/typo3-fal-filewriter)
==============================================================================================================================================================================================================================================================================================================================================

[](#fal-filewriter-)

Little helper package for when you want to create files and save them to TYPO3's File Abstraction Layer

Installation
------------

[](#installation)

FAL Filewriter is no TYPO3 extension and not available via TER. It can only be installed via composer:

`composer require smichaelsen/fal-filewriter`

Usage
-----

[](#usage)

### FileGenerator

[](#filegenerator)

You need to create a class that provides the content that will be saved in a file. It has to implement the `\Smichaelsen\FalFilewriter\FileGeneratorInterface`, which is fairly easy.

### Storage

[](#storage)

By default your TYPO3 installation will have a storage record with uid `1` pointing to the fileadmin, but of course you can configure your own storage records pointing to other folders or even to external services like AWS.

Load the storage object like this:

```
$storage = $this->objectManager->get(\TYPO3\CMS\Core\Resource\StorageRepository::class)->findByUid($fileStorageUid);

```

### FileWriterService

[](#filewriterservice)

The `\Smichaelsen\FalFilewriter\FileWriterService` has one public method `saveFile()` which takes the following parameters:

- **$fileGenerator**: Your file generator object implementing the `FileGeneratorInterface`.
- **$fileIdentifier**: The file name which may include a relative path inside the `$storage` folder. The file extension may be omitted. Then it is read from the `$fileGenerator` (`->getFileExtension()`). If the file name starts with a path that doesn't exist it will be tried to create that path.
- **$storage**: The `ResourceStorage` object to save the file in. See above ("Storage") for more information.

As return value you will receive a `\TYPO3\CMS\Core\Resource\FileInterface` object for the saved file.

Example:

```
/** @var \Smichaelsen\FalFilewriter\FileWriterService $fileWriterService */
/** @var \Smichaelsen\FalFilewriter\FileGeneratorInterface $fileGenerator */
/** @var \TYPO3\CMS\Core\Resource\ResourceStorage $storage */
$fileObject = $fileWriterService->saveFile($fileGenerator, 'folder/my-filename', $storage);

```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity68

Established project with proven stability

 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 ~75 days

Recently: every ~94 days

Total

6

Last Release

3241d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/886face3e57e668db2bf95d62325f423baf7e9d8949a9e4c84d3a0e6c3891920?d=identicon)[smichaelsen](/maintainers/smichaelsen)

---

Top Contributors

[![smichaelsen](https://avatars.githubusercontent.com/u/912435?v=4)](https://github.com/smichaelsen "smichaelsen (5 commits)")

### Embed Badge

![Health badge](/badges/smichaelsen-fal-filewriter/health.svg)

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

PHPackages © 2026

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