PHPackages                             wegmeister/databasestorage - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. wegmeister/databasestorage

ActiveNeos-plugin[Parsing &amp; Serialization](/categories/parsing)

wegmeister/databasestorage
==========================

This package adds the ability to store inputs of a form (or other input) into database and export the stored data as xlsx.

2.1.2(6mo ago)624.9k↓10.7%11[5 issues](https://github.com/die-wegmeister/Wegmeister.DatabaseStorage/issues)[4 PRs](https://github.com/die-wegmeister/Wegmeister.DatabaseStorage/pulls)GPL-3.0-or-laterPHP

Since Mar 23Pushed 6mo ago5 watchersCompare

[ Source](https://github.com/die-wegmeister/Wegmeister.DatabaseStorage)[ Packagist](https://packagist.org/packages/wegmeister/databasestorage)[ RSS](/packages/wegmeister-databasestorage/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (51)Used By (0)

Wegmeister.DatabaseStorage
==========================

[](#wegmeisterdatabasestorage)

This package adds the ability to store form submissions into a database and export the stored data as xlsx, xls, ods, csv or html.

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

[](#installation)

To install the package simply run

```
composer require wegmeister/databasestorage

```

Usage
-----

[](#usage)

You can add the DatabaseStorage Finisher in the following ways.

Note

Since version `2.1.0` the DatabaseStorage Finisher will add a new form value `databaseStorageIdentifier` that can be used in further finishers. This value is the identifier of the database entry and can be helpful if you need to reference the entry in other finishers.

### Add DatabaseStorage using YAML definitions

[](#add-databasestorage-using-yaml-definitions)

Add the DatabaseStorage a finisher in your form definition/yaml file:

```
type: 'Neos.Form:Form'
identifier: 'some-identifier'
label: 'My form'
renderables:
  # Your renderables / form fields go here

finishers:
  -
    identifier: 'Wegmeister.DatabaseStorage:DatabaseStorageFinisher'
    options:
      # The identifier is used to group your data in the database.
      # You should avoid using the same identifier twice or your data could become a little messed up.
      identifier: 'my-form-data'
```

### Add DatabaseStorage using the Neos Form Builder

[](#add-databasestorage-using-the-neos-form-builder)

You can also use the DatabaseStorage with the [Neos.Form.Builder](https://github.com/neos/form-builder). You should be able to simply add DatabaseStorage as a finisher to your form.

Don't forget to set a (unique) `identifier`!

### Add DatabaseStorage using a Fusion Form

[](#add-databasestorage-using-a-fusion-form)

You can also use the DatabaseStorage [Neos.Fusion.Form](https://github.com/neos/fusion-form) action.

Add the following configuration to your form action definition:

```
databaseStorage {
    type = '\\Wegmeister\\DatabaseStorage\\FusionForm\\Runtime\\Action\\DatabaseStorageAction'
    options {
        identifier = 'identifier-in-backend'
        formValues = ${data}
    }
}

```

Available settings
------------------

[](#available-settings)

The following settings are available and can be overridden by your Settings.yaml:

```
Wegmeister:
  DatabaseStorage:
    # Creator name of the exported files
    creator: 'die wegmeister gmbh'
    # Title for the exported files
    title: 'Database Export'
    # Subject for the exported files
    subject: 'Database Export'
    # DateTime format if the datetime is included in the export
    datetimeFormat: 'Y-m-d H:i:s'
    # Number of entries per page on the identifier list view
    itemsPerPage: 20
    # Array list item prefix on the identifier list view
    listPrefix: '-'
    # Form element types that should not be stored by the finisher (for Node-based forms)
    nodeTypesIgnoredInFinisher:
      - 'Neos.Form.Builder:Section'
      - 'Neos.Form.Builder:StaticText'
    # Form element types that should not be part of the export (for Node-based forms)
    nodeTypesIgnoredInExport:
      - 'Neos.Form.Builder:Section'
      - 'Neos.Form.Builder:StaticText'
      - 'Neos.Form.Builder:Password'
      - 'Neos.Form.Builder:PasswordWithConfirmation'
```

Cleanup commands
----------------

[](#cleanup-commands)

The package comes with cleanup commands to delete data older than a date interval you can define in your settings. You can run the command manually or use a cron job.

Add storages you wish to be cleaned up and define how long the data of each storage should be stored:

```
Wegmeister:
  DatabaseStorage:
    cleanup:
      # Add storage identifier you wish to be cleaned up
      storageIdentifier1:
        # Define how long the data should be stored as date interval
        # https://www.php.net/manual/en/class.dateinterval.php
        dateInterval: "P6M"
        removeFiles: true
      storageIdentifier2:
          dateInterval: "P1Y"
          removeFiles: false
```

Run the cleanup command for the configured storages:

```
./flow databasestorage:cleanupconfiguredstorages

```

You can also run a cleanup command for all existing storages. The command comes with parameters:

Parameter NameData TypeDescriptiondate-intervalstringDefines which data should be deleted. We use the PHP DateInterval format. You can find more information [here](https://www.php.net/manual/en/class.dateinterval.php).include-configured-storagesbooleanIf you have configured storages in your settings, you can skip them with this parameter.remove-filesbooleanThe PersistentResource that is potentially attached to the database storage entry will be removed as well.```
./flow databasestorage:cleanupallstorages --date-interval=P1M --remove-files

```

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance49

Moderate activity, may be stable

Popularity36

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 70.7% 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 ~61 days

Recently: every ~112 days

Total

46

Last Release

208d ago

Major Versions

1.2.11 → 2.0.02022-10-04

1.2.x-dev → 2.0.32024-07-22

### Community

Maintainers

![](https://www.gravatar.com/avatar/028c454abbb42f4b6e8f9d37a12857f56a8eda4be858b85185bd57a6ba512540?d=identicon)[wegmeister](/maintainers/wegmeister)

---

Top Contributors

[![Benjamin-K](https://avatars.githubusercontent.com/u/3098031?v=4)](https://github.com/Benjamin-K "Benjamin-K (87 commits)")[![markusguenther](https://avatars.githubusercontent.com/u/1014126?v=4)](https://github.com/markusguenther "markusguenther (9 commits)")[![bibergem](https://avatars.githubusercontent.com/u/75987806?v=4)](https://github.com/bibergem "bibergem (6 commits)")[![connykaelinvisol](https://avatars.githubusercontent.com/u/126244928?v=4)](https://github.com/connykaelinvisol "connykaelinvisol (6 commits)")[![lorenzulrich](https://avatars.githubusercontent.com/u/1816023?v=4)](https://github.com/lorenzulrich "lorenzulrich (4 commits)")[![anianweber](https://avatars.githubusercontent.com/u/18150589?v=4)](https://github.com/anianweber "anianweber (3 commits)")[![christophengelmayer](https://avatars.githubusercontent.com/u/3295750?v=4)](https://github.com/christophengelmayer "christophengelmayer (2 commits)")[![siggj](https://avatars.githubusercontent.com/u/526370?v=4)](https://github.com/siggj "siggj (1 commits)")[![beardcoder](https://avatars.githubusercontent.com/u/9371658?v=4)](https://github.com/beardcoder "beardcoder (1 commits)")[![fdsis](https://avatars.githubusercontent.com/u/54950395?v=4)](https://github.com/fdsis "fdsis (1 commits)")[![lcherpit](https://avatars.githubusercontent.com/u/490499?v=4)](https://github.com/lcherpit "lcherpit (1 commits)")[![mbiberger](https://avatars.githubusercontent.com/u/8565550?v=4)](https://github.com/mbiberger "mbiberger (1 commits)")[![akappler](https://avatars.githubusercontent.com/u/30337968?v=4)](https://github.com/akappler "akappler (1 commits)")

---

Tags

neos-cmsneos-pluginxlsxyaml

### Embed Badge

![Health badge](/badges/wegmeister-databasestorage/health.svg)

```
[![Health](https://phpackages.com/badges/wegmeister-databasestorage/health.svg)](https://phpackages.com/packages/wegmeister-databasestorage)
```

###  Alternatives

[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)[jms/serializer-bundle

Allows you to easily serialize, and deserialize data of any complexity

1.8k89.3M627](/packages/jms-serializer-bundle)[mck89/peast

Peast is PHP library that generates AST for JavaScript code

18934.7M29](/packages/mck89-peast)[ivopetkov/html5-dom-document-php

HTML5 DOMDocument PHP library (extends DOMDocument)

6031.4M49](/packages/ivopetkov-html5-dom-document-php)

PHPackages © 2026

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