PHPackages                             windinternet/randomdata - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. windinternet/randomdata

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

windinternet/randomdata
=======================

TYPO3 extensions to generate new random data or replace existing data with random data

1.1.0(4y ago)141.4k2[3 issues](https://github.com/FamousWolf/randomdata/issues)[1 PRs](https://github.com/FamousWolf/randomdata/pulls)GPL-3.0-or-laterPHP

Since Apr 5Pushed 2y ago3 watchersCompare

[ Source](https://github.com/FamousWolf/randomdata)[ Packagist](https://packagist.org/packages/windinternet/randomdata)[ RSS](/packages/windinternet-randomdata/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (6)Dependencies (2)Versions (12)Used By (0)

TYPO3 Extension `randomdata`
============================

[](#typo3-extension-randomdata)

TYPO3 extensions to generate new random data or replace existing data with random data

This extensions uses  and was inspired by . Thanks go out to the builders, contributors and maintainers of those projects.

Requirements
------------

[](#requirements)

- TYPO3 CMS 9.5, 10.4 or 11.5
- PHP 7.2+
- Licence: GPL 3.0

Manual
------

[](#manual)

After installing randomdata in TYPO3 you can run it using the following command:

```
vendor/bin/typo3 randomdata:generate configuration.yaml

```

For more information about the command line options, use the following command:

```
vendor/bin/typo3 help randomdata:generate

```

The location of the configuration yaml file needs to be inside the site root.

For each record type you want to add to a PID you have to add configuration to the yaml file. The configuration for a single record type in a single pid looks like this:

```
recordTypeName:
  table: recordTable
  pid: recordPid
  action: action
  count: numberOfRecordsToCreate
  fields:
    field1:
      provider: Provider
```

- **recordTypeName** is just a label. It can be anything you want. For example `news`
- **table** is the database table for the record. This table has to be known in TCA. For example `tx_news_domain_model_news`
- **pid** is the UID of the page for the record. For example `4`
- **action** is the action to perform. By default only 2 actions are possible: `insert` to create new records and `replace` to replace all existing records of this type for that pid. It is also possible to create custom actions.
- **count** is the number of records to create. This is only needed for the action `insert`. For example `10`
- **fields** contains the configuration for the fields of the records.
- **field1** is the name of a field of the record. For example `title`
- **provider** is the name of the Provider to use when generating the random data. For example `Words`.

A lot of Providers also require additional configuration. These can be placed on the same level as the Provider.

### Providers

[](#providers)

The following providers are available by default:

- **Barcode**
    - type: The type of barcode \[aen13 (default), aen8, isbn10, isbn13\]
- **Boolean**
- **City**
- **Color**
    - type: The type of color \[hexColor (default), rgbColor, rgbCssColor, colorName, safeColorName\]
- **Company**
- **CountryCode**
- **Country**
- **CreditcardExpirationDate**
- **CreditcardNumber**
- **CreditcardType**
- **CurrencyCode**
- **DateTime**
    - minimum: The minimum date in any valid date/time format
    - maximum: The maximum date in any valid date/time format
    - timezone: The timezone
    - format: The format as set for the PHP date() function
- **Domain**
    - type: The type of domain \[domainName (default), safeEmailDomain, freeEmailDomain, tld\]
- **Email**
    - type: The type of e-mail address \[email (default), safeEmail, freeEmail, companyEmail\]
- **Emoji**
- **FieldDateTime**
    - field: The DateTime field to base this date/time on
    - fieldFormat: The format as set for the DateTime field
    - interval: The interval in any valid date/time format
    - timezone: The timezone
    - format: The format as set for the PHP date() function
- **FileExtension**
- **File**
    - minimum: Minimum number
    - maximum: Maximum number
    - source: Source directory containing files
    - referenceFields: Fields in the file reference
- **FirstName**
    - gender: Gender of the name \[null (default), male, female\]
- **FixedValue**
    - value: The value
- **Float**
    - minimum: Minimum number
    - maximum: Maximum number
    - decimals: Maximum number of decimals
- **FullAddress**
- **Hash**
    - type: Type of the hash \[sha1 (default), sha256, md5\]
- **Iban**
    - country: Country for the Iban
- **Integer**
    - minimum: Minimum number
    - maximum: Maximum number
- **Ip**
    - type: The type of IP address \[ipv4 (default), ipv6, localIpv4\]
- **JobTitle**
- **LanguageCode**
- **LastName**
- **Locale**
- **MimeType**
- **Name**
    - gender: The gender of the name \[null (default), male, female\]
    - addTitle: Add a title to the name \[false (default), true\]
- **Paragraphs**
    - minimum: The minimum number of paragraphs
    - maximum: The maximum number of paragraphs
    - sentences: The approximate number of sentences (could be a few more or less randomly)
    - html: Run through htmlSpecialChars and add `` and `` tags \[false (default), true\]
- **PhoneNumber**
    - e164: The phone number should be in e164 format \[false (default), true\]
- **Postcode**
- **RandomValue**
    - values: Array of values
- **Relation**
    - table: The table to select the relation from
    - pid: The pid to select the relation from
    - minimum: The minumum number
    - maximum: The maximum number
- **Sentences**
    - minimum: The minimum number
    - maximum: The maximum number
- **State**
- **StreetAddress**
- **Street**
- **SwiftBic**
- **Text**
    - maximum: The maximum number
- **Title**
    - gender \[null (default), male, female\]
- **Url**
- **UserAgent**
    - type: The browser type \[null (default), chrome, firefox, safari, opera\]
- **Uuid**
- **Words**
    - minimum: The minimum number
    - maximum: The maximum number

### Example configuration yaml

[](#example-configuration-yaml)

```
categories:
  table: sys_category
  pid: 4
  action: insert
  count: 10
  fields:
    title:
      provider: Words
      minimum: 1
      maximum: 3

news:
  table: tx_news_domain_model_news
  pid: 4
  action: insert
  count: 20
  fields:
    title:
      provider: Sentences
      minimum: 1
      maximum: 1
    teaser:
      provider: Sentences
      minimum: 1
      maximum: 30
    bodytext:
      provider: Paragraphs
      minimum: 1
      maximum: 10
      html: true
    datetime:
      provider: DateTime
      minimum: -1 year
      maximum: now
      format: U
    categories:
      provider: Relation
      table: sys_category
      minimum: 0
      maximum: 5
    fal_media:
      provider: File
      minimum: 0
      maximum: 1
      source: fileadmin/randomimages/
      referenceFields:
        showinpreview:
          provider: FixedValue
          value: 1
    path_segment:
      provider: FixedValue
      value:
```

Custom Provider
---------------

[](#custom-provider)

You can create a custom provider from your own extension by adding a class which implements `\WIND\Randomdata\Provider\ProviderInterface`. It should have at least a static `generate` method.

You can set your custom provider in the configuration yaml file by setting the full class name in the `provider` option. For example `provider: \My\Custom\Provider`

Custom action
-------------

[](#custom-action)

If you need anything other than `insert` or `replace` as action, you can use the `generateItemCustomAction` signal slot. You also need to set your action in the `$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['randomdata']['allowedActions']` array.

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity67

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

Recently: every ~198 days

Total

10

Last Release

1527d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/534184bc8ea49b4f00cbf2e6a0d67460ca6244c005e16efef90f9108f7474ada?d=identicon)[FamousWolf](/maintainers/FamousWolf)

---

Top Contributors

[![FamousWolf](https://avatars.githubusercontent.com/u/6401921?v=4)](https://github.com/FamousWolf "FamousWolf (8 commits)")

---

Tags

anonymizationdata-generatorextensionfakerrandomrandom-generatortypo3typo3-extension

### Embed Badge

![Health badge](/badges/windinternet-randomdata/health.svg)

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

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

101466.4k45](/packages/friendsoftypo3-content-blocks)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

41515.2k](/packages/wazum-sluggi)[praetorius/vite-asset-collector

Use AssetCollector to embed frontend assets generated by vite

54299.7k1](/packages/praetorius-vite-asset-collector)[typo3/cms-impexp

TYPO3 CMS Import/Export - Tool for importing and exporting records using XML or the custom T3D format.

106.8M82](/packages/typo3-cms-impexp)[typo3/cms-sys-note

TYPO3 CMS System Notes - Records with messages which can be placed on any page and contain instructions or other information related to a page or section.

116.2M37](/packages/typo3-cms-sys-note)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)

PHPackages © 2026

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