{"id":23916835,"url":"https://github.com/famouswolf/randomdata","last_synced_at":"2025-06-30T02:34:53.878Z","repository":{"id":41868211,"uuid":"179659492","full_name":"FamousWolf/randomdata","owner":"FamousWolf","description":"TYPO3 extensions to generate new random data or replace existing data with random data","archived":false,"fork":false,"pushed_at":"2024-03-01T09:35:54.000Z","size":83,"stargazers_count":14,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-15T21:19:30.965Z","etag":null,"topics":["anonymization","data-generator","extension","faker","random","random-generator","typo3","typo3-extension"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FamousWolf.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-04-05T10:07:31.000Z","updated_at":"2022-12-01T07:54:06.000Z","dependencies_parsed_at":"2024-03-01T10:48:49.756Z","dependency_job_id":null,"html_url":"https://github.com/FamousWolf/randomdata","commit_stats":{"total_commits":37,"total_committers":5,"mean_commits":7.4,"dds":"0.45945945945945943","last_synced_commit":"afd2f9854e703d12460c9e11aec7842b63b950ad"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/FamousWolf/randomdata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FamousWolf%2Frandomdata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FamousWolf%2Frandomdata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FamousWolf%2Frandomdata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FamousWolf%2Frandomdata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FamousWolf","download_url":"https://codeload.github.com/FamousWolf/randomdata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FamousWolf%2Frandomdata/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262699283,"owners_count":23350274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anonymization","data-generator","extension","faker","random","random-generator","typo3","typo3-extension"],"created_at":"2025-01-05T12:14:37.640Z","updated_at":"2025-06-30T02:34:53.855Z","avatar_url":"https://github.com/FamousWolf.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TYPO3 Extension `randomdata`\nTYPO3 extensions to generate new random data or replace existing data with random data\n\nThis extensions uses https://github.com/FakerPHP/Faker and was inspired by https://github.com/georgringer/faker. Thanks go out to the builders, contributors and maintainers of those projects.\n\n## Requirements\n- TYPO3 CMS 9.5, 10.4 or 11.5\n- PHP 7.2+\n- Licence: GPL 3.0\n\n## Manual\nAfter installing randomdata in TYPO3 you can run it using the following command:\n\n```\nvendor/bin/typo3 randomdata:generate configuration.yaml\n```\n\nFor more information about the command line options, use the following command: \n\n```\nvendor/bin/typo3 help randomdata:generate\n```\n\nThe location of the configuration yaml file needs to be inside the site root.\n\nFor 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:\n\n```yaml\nrecordTypeName:\n  table: recordTable\n  pid: recordPid\n  action: action\n  count: numberOfRecordsToCreate\n  fields:\n    field1:\n      provider: Provider\n```\n\n- **recordTypeName** is just a label. It can be anything you want. For example `news`\n- **table** is the database table for the record. This table has to be known in TCA. For example `tx_news_domain_model_news`\n- **pid** is the UID of the page for the record. For example `4`\n- **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.\n- **count** is the number of records to create. This is only needed for the action `insert`. For example `10`\n- **fields** contains the configuration for the fields of the records.\n- **field1** is the name of a field of the record. For example `title`\n- **provider** is the name of the Provider to use when generating the random data. For example `Words`.\n\nA lot of Providers also require additional configuration. These can be placed on the same level as the Provider.\n\n### Providers\nThe following providers are available by default:\n\n- **Barcode**\n    - type: The type of barcode [aen13 (default), aen8, isbn10, isbn13]\n- **Boolean**\n- **City**\n- **Color**\n    - type: The type of color [hexColor (default), rgbColor, rgbCssColor, colorName, safeColorName]\n- **Company**\n- **CountryCode**\n- **Country**\n- **CreditcardExpirationDate**\n- **CreditcardNumber**\n- **CreditcardType**\n- **CurrencyCode**\n- **DateTime**\n    - minimum: The minimum date in any valid date/time format\n    - maximum: The maximum date in any valid date/time format\n    - timezone: The timezone\n    - format: The format as set for the PHP date() function\n- **Domain**\n    - type: The type of domain [domainName (default), safeEmailDomain, freeEmailDomain, tld]\n- **Email**\n    - type: The type of e-mail address [email (default), safeEmail, freeEmail, companyEmail]\n- **Emoji**\n- **FieldDateTime**\n    - field: The DateTime field to base this date/time on\n    - fieldFormat: The format as set for the DateTime field\n    - interval: The interval in any valid date/time format\n    - timezone: The timezone\n    - format: The format as set for the PHP date() function\n- **FileExtension**\n- **File**\n    - minimum: Minimum number\n    - maximum: Maximum number\n    - source: Source directory containing files\n    - referenceFields: Fields in the file reference\n- **FirstName**\n    - gender: Gender of the name [null (default), male, female]\n- **FixedValue**\n    - value: The value\n- **Float**\n    - minimum: Minimum number\n    - maximum: Maximum number\n    - decimals: Maximum number of decimals\n- **FullAddress**\n- **Hash**\n    - type: Type of the hash [sha1 (default), sha256, md5]\n- **Iban**\n    - country: Country for the Iban\n- **Integer**\n    - minimum: Minimum number\n    - maximum: Maximum number\n- **Ip**\n    - type: The type of IP address [ipv4 (default), ipv6, localIpv4]\n- **JobTitle**\n- **LanguageCode**\n- **LastName**\n- **Locale**\n- **MimeType**\n- **Name**\n    - gender: The gender of the name [null (default), male, female]\n    - addTitle: Add a title to the name [false (default), true]\n- **Paragraphs**\n    - minimum: The minimum number of paragraphs\n    - maximum: The maximum number of paragraphs\n    - sentences: The approximate number of sentences (could be a few more or less randomly)\n    - html: Run through htmlSpecialChars and add `\u003cp\u003e` and `\u003c/p\u003e` tags [false (default), true]\n- **PhoneNumber**\n    - e164: The phone number should be in e164 format [false (default), true]\n- **Postcode**\n- **RandomValue**\n    - values: Array of values\n- **Relation**\n    - table: The table to select the relation from\n    - pid: The pid to select the relation from\n    - minimum: The minumum number\n    - maximum: The maximum number\n- **Sentences**\n    - minimum: The minimum number\n    - maximum: The maximum number\n- **State**\n- **StreetAddress**\n- **Street**\n- **SwiftBic**\n- **Text**\n    - maximum: The maximum number\n- **Title**\n    - gender [null (default), male, female]\n- **Url**\n- **UserAgent**\n    - type: The browser type [null (default), chrome, firefox, safari, opera]\n- **Uuid**\n- **Words**\n    - minimum: The minimum number\n    - maximum: The maximum number\n\n### Example configuration yaml\n```yaml\ncategories:\n  table: sys_category\n  pid: 4\n  action: insert\n  count: 10\n  fields:\n    title:\n      provider: Words\n      minimum: 1\n      maximum: 3\n\nnews:\n  table: tx_news_domain_model_news\n  pid: 4\n  action: insert\n  count: 20\n  fields:\n    title:\n      provider: Sentences\n      minimum: 1\n      maximum: 1\n    teaser:\n      provider: Sentences\n      minimum: 1\n      maximum: 30\n    bodytext:\n      provider: Paragraphs\n      minimum: 1\n      maximum: 10\n      html: true\n    datetime:\n      provider: DateTime\n      minimum: -1 year\n      maximum: now\n      format: U\n    categories:\n      provider: Relation\n      table: sys_category\n      minimum: 0\n      maximum: 5\n    fal_media:\n      provider: File\n      minimum: 0\n      maximum: 1\n      source: fileadmin/randomimages/\n      referenceFields:\n        showinpreview:\n          provider: FixedValue\n          value: 1\n    path_segment:\n      provider: FixedValue\n      value:\n```\n\n## Custom Provider\nYou 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.\n\nYou 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`\n\n## Custom action\nIf 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffamouswolf%2Frandomdata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffamouswolf%2Frandomdata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffamouswolf%2Frandomdata/lists"}