windinternet/randomdata
Composer 安装命令:
composer require windinternet/randomdata
包简介
TYPO3 extensions to generate new random data or replace existing data with random data
README 文档
README
TYPO3 extensions to generate new random data or replace existing data with random data
This 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.
Requirements
- TYPO3 CMS 9.5, 10.4 or 11.5
- PHP 7.2+
- Licence: GPL 3.0
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:
insertto create new records andreplaceto 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 example10 - 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
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
<p>and</p>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
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
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
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.
windinternet/randomdata 适用场景与选型建议
windinternet/randomdata 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.41k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2019 年 04 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 windinternet/randomdata 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 windinternet/randomdata 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.41k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 14
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2019-04-05