PHPackages                             codappix/typo3-php-datasets - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. codappix/typo3-php-datasets

ActiveLibrary[Testing &amp; Quality](/categories/testing)

codappix/typo3-php-datasets
===========================

Enables usage of PHP data sets within TYPO3.

v2.1.1(2mo ago)023.7k↓52.2%215GPL-2.0-or-laterPHPPHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0CI failing

Since Apr 11Pushed 6mo ago4 watchersCompare

[ Source](https://code.codappix.com/codappix/typo3-php-datasets.git)[ Packagist](https://packagist.org/packages/codappix/typo3-php-datasets)[ RSS](/packages/codappix-typo3-php-datasets/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (24)Versions (15)Used By (15)

PHP DataSets for TYPO3
======================

[](#php-datasets-for-typo3)

Provides APIs to use data sets written as PHP arrays with TYPO3.

Why
===

[](#why)

We don't like the approach of TYPO3 Testing Framework regarding DataSets.

We have the following issues:

1. XML is only supported for imports, not for assertions
2. CSV is a bad format that already got hacked, e.g. `#` to indicate comments. We consider it bad as one needs special toolings in order to properly write CSV files, they are not human readable.

That's why we prefer PHP files instead. That way developers are free to use whatever they want. Either plain PHP or even YAML or other formats. They are not forced to anything but can stick to their known tooling.

We also have situations where we wanna have static database records on production that are maintained by PHP data sets and update wizards.

So this package should in general handle PHP data sets for TYPO3. It should ease the abstract usage by providing convenient integrations for general use cases, like the testing framework.

Usage
=====

[](#usage)

See our own tests for how to use, as they do nothing else.

Within testing framework
------------------------

[](#within-testing-framework)

1. Create data set

    A data set is a PHP file that returns an array of tables with their records. Format is:

    ```
       return [
           'table_name' => [
               // Records
               [
                   // column_name => value
                   'uid' => 1,
               ],
           ],
       ];
    ```
2. Import the :php:`Codappix\Typo3PhpDatasets\TestingFramework` trait

    ```
       use Codappix\Typo3PhpDatasets\TestingFramework as PhpDatasets;

       final class MyTest extends FunctionalTestCase
       {
           use PhpDatasets;

           // ...
       }
    ```
3. Use API

    Import:

    ```
       $this->importPHPDataSet(__DIR__ . '/Fixtures/SimpleSet.php');
    ```

    Assert:

    ```
       $this->assertPHPDataSet(__DIR__ . '/Fixtures/SimpleSet.php');
    ```

Converter
=========

[](#converter)

The package provides a single bin with command to convert existing data-sets. The bin is available as `typo3-php-datasets`. Available commands:

- `convert-from-xml`
- `convert-from-csv`

Each command will convert the existing file(s) and place a new PHP variant next to it. Existing files are only read, not changed.

TODO
====

[](#todo)

1. Implement use case to check for necessary updates and allow updates. Use for static data during deployment within update wizards or other scripts.

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance76

Regular maintenance activity

Popularity28

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 58.3% 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 ~105 days

Recently: every ~213 days

Total

12

Last Release

70d ago

Major Versions

v1.6.0 → v2.1.02025-03-06

PHP version history (7 changes)v1.0.0PHP ^7.3 || ^7.4 || ^8.0 || ^8.1 || ^8.2

v1.2.0PHP ^7.2 || ^7.3 || ^7.4 || ^8.0 || ^8.1 || ^8.2

v1.5.0PHP ^7.2 || ^7.3 || ^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3

v1.6.0PHP ^7.2 || ^7.3 || ^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3 || ^8.4

v2.1.0PHP ^8.2 || ^8.3 || ^8.4 || ^8.5

v2.0.0PHP ^8.2 || ^8.3 || ^8.4

v2.1.1PHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/050bb447626bd34a00e655752d99ccff1140ae7ec7d129316819662829e041a3?d=identicon)[codappix](/maintainers/codappix)

---

Top Contributors

[![DanielSiepmann](https://avatars.githubusercontent.com/u/354250?v=4)](https://github.com/DanielSiepmann "DanielSiepmann (14 commits)")[![d-s-codappix](https://avatars.githubusercontent.com/u/179449418?v=4)](https://github.com/d-s-codappix "d-s-codappix (6 commits)")[![extcode](https://avatars.githubusercontent.com/u/1134172?v=4)](https://github.com/extcode "extcode (2 commits)")[![justusmoroni](https://avatars.githubusercontent.com/u/5197489?v=4)](https://github.com/justusmoroni "justusmoroni (1 commits)")[![mbrodala](https://avatars.githubusercontent.com/u/5037116?v=4)](https://github.com/mbrodala "mbrodala (1 commits)")

---

Tags

typo3testingdev

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/codappix-typo3-php-datasets/health.svg)

```
[![Health](https://phpackages.com/badges/codappix-typo3-php-datasets/health.svg)](https://phpackages.com/packages/codappix-typo3-php-datasets)
```

###  Alternatives

[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

86337.5k](/packages/flow-php-flow)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k30.0M2.9k](/packages/infection-infection)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.9M535](/packages/pimcore-pimcore)[behat/behat

Scenario-oriented BDD framework for PHP

4.0k103.4M2.3k](/packages/behat-behat)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M674](/packages/shopware-core)

PHPackages © 2026

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