windinternet / randomdata
TYPO3 扩展,用于生成新的随机数据或用随机数据替换现有数据
1.1.0
2022-04-25 18:07 UTC
Requires
- fzaninotto/faker: ^1.8
- typo3/cms-core: ^9.5.30 || ^10.4.20 || ^11.3.3
Replaces
- typo3-ter/randomdata: 1.1.0
README
TYPO3 扩展,用于生成新的随机数据或用随机数据替换现有数据
此扩展使用了 https://github.com/FakerPHP/Faker 并受到 https://github.com/georgringer/faker 的启发。感谢那些项目的构建者、贡献者和维护者。
需求
- TYPO3 CMS 9.5, 10.4 或 11.5
- PHP 7.2+
- 许可:GPL 3.0
手册
在TYPO3中安装randomdata后,可以使用以下命令运行它
vendor/bin/typo3 randomdata:generate configuration.yaml
有关命令行选项的更多信息,请使用以下命令
vendor/bin/typo3 help randomdata:generate
配置yaml文件的存储位置必须在站点根目录内。
对于您想要添加到PID的每个记录类型,您必须在yaml文件中添加配置。单个PID中单个记录类型的配置如下所示
recordTypeName: table: recordTable pid: recordPid action: action count: numberOfRecordsToCreate fields: field1: provider: Provider
- recordTypeName 只是一个标签。它可以是你想要的任何内容。例如
news
- table 是记录的数据库表。这个表必须在TCA中已知。例如
tx_news_domain_model_news
- pid 是记录页面的UID。例如
4
- action 是要执行的操作。默认情况下,只有两种操作是可能的:使用
insert
创建新记录和replace
替换该PID中此类型所有现有记录。也可以创建自定义操作。 - count 是要创建的记录数。这仅适用于操作
insert
。例如10
- fields 包含记录字段的配置。
- field1 是记录字段的名称。例如
title
- provider 是生成随机数据时使用的Provider的名称。例如
Words
。
许多Provider还需要额外的配置。这些可以放在与Provider相同的级别。
Provider
以下是一些默认可用的Provider
- 条形码
- 类型:条形码类型 [aen13 (默认),aen8,isbn10,isbn13]
- 布尔值
- 城市
- 颜色
- 类型:颜色类型 [hexColor (默认),rgbColor,rgbCssColor,colorName,safeColorName]
- 公司
- 国家代码
- 国家
- 信用卡到期日期
- 信用卡号码
- 信用卡类型
- 货币代码
- 日期时间
- 最小值:任何有效日期/时间格式的最小日期
- 最大值:任何有效日期/时间格式的最大日期
- 时区:时区
- 格式:PHP date() 函数设置的格式
- 域名
- 类型:域名类型 [domainName (默认),safeEmailDomain,freeEmailDomain,tld]
- 电子邮件
- 类型:电子邮件地址类型 [email (默认),safeEmail,freeEmail,companyEmail]
- 表情符号
- 字段日期时间
- 字段:基于此日期/时间字段的字段
- 字段格式:DateTime 字段的格式
- 间隔:任何有效日期/时间格式的间隔
- 时区:时区
- 格式:PHP date() 函数设置的格式
- 文件扩展名
- 文件
- 最小值:最小数字
- 最大值:最大数字
- 源:包含文件的源目录
- 参考字段:文件引用中的字段
- 名字
- 性别:名字的性别 [null (默认),male,female]
- 固定值
- 值:值
- 浮点数
- 最小值:最小数字
- 最大值:最大数字
- 小数位数:最大小数位数
- 全地址
- 哈希
- 类型:哈希类型[sha1(默认),sha256,md5]
- Iban
- 国家:Iban对应的国家
- 整数
- 最小值:最小数字
- 最大值:最大数字
- IP
- 类型:IP地址类型[ipv4(默认),ipv6,localIpv4]
- 职位名称
- 语言代码
- 姓
- 地区
- MimeType
- 名称
- 性别:名称的性别[null(默认),男性,女性]
- 添加标题:向名称添加标题[false(默认),true]
- 段落
- 最小值:段落的最小数量
- 最大值:段落的最大数量
- 句子:大约的句子数量(可能随机多或少一些)
- html:通过htmlSpecialChars运行并添加
<p>
和</p>
标签[false(默认),true]
- 电话号码
- e164:电话号码应采用e164格式[false(默认),true]
- 邮编
- 随机值
- 值:值数组
- 关系
- 表:从该表选择关系的表
- pid:从该pid选择关系
- 最小值:最小数量
- 最大值:最大数量
- 句子
- 最小值:最小数量
- 最大值:最大数量
- 州
- 街道地址
- 街道
- SwiftBic
- 文本
- 最大值:最大数量
- 标题
- 性别[null(默认),男性,女性]
- 网址
- 用户代理
- 类型:浏览器类型[null(默认),chrome,firefox,safari,opera]
- Uuid
- 单词
- 最小值:最小数量
- 最大值:最大数量
示例配置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:
自定义提供者
您可以通过添加实现\WIND\Randomdata\Provider\ProviderInterface
的类来自定义扩展创建自定义提供者。它应该至少有一个静态generate
方法。
您可以通过在配置yaml文件中将完整类名设置在provider
选项中来设置您的自定义提供者。例如provider: \My\Custom\Provider
自定义操作
如果您需要除insert
或replace
以外的其他操作,您可以使用generateItemCustomAction
信号槽。您还需要在$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['randomdata']['allowedActions']
数组中设置您的操作。