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.0(5mo ago)519.8k↓34.4%215GPL-2.0-or-laterPHPPHP ^8.2 || ^8.3 || ^8.4 || ^8.5CI failing

Since Apr 11Pushed 3mo ago4 watchersCompare

[ Source](https://github.com/Codappix/typo3-php-datasets)[ Packagist](https://packagist.org/packages/codappix/typo3-php-datasets)[ RSS](/packages/codappix-typo3-php-datasets/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (12)Versions (13)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 97% of packages

Maintenance75

Regular maintenance activity

Popularity33

Limited adoption so far

Community26

Small or concentrated contributor base

Maturity69

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

Recently: every ~187 days

Total

11

Last Release

173d ago

Major Versions

v1.6.0 → v2.0.02025-10-20

PHP version history (6 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.0.0PHP ^8.2 || ^8.3 || ^8.4

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

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

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k96.8M2.0k](/packages/behat-behat)[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[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.2k26.2M1.8k](/packages/infection-infection)[brianium/paratest

Parallel testing for PHP

2.5k118.8M754](/packages/brianium-paratest)[orchestra/testbench-core

Testing Helper for Laravel Development

27043.7M310](/packages/orchestra-testbench-core)[phpbench/phpbench

PHP Benchmarking Framework

2.0k13.0M627](/packages/phpbench-phpbench)

PHPackages © 2026

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