windinternet/randomdata

TYPO3 扩展,用于生成新的随机数据或用随机数据替换现有数据

安装次数: 1,390

依赖项: 0

建议者: 0

安全: 0

星标: 14

关注者: 3

分支: 1

公开问题: 3

类型:typo3-cms-extension

1.1.0 2022-04-25 18:07 UTC

This package is auto-updated.

Last update: 2024-09-30 10:55:24 UTC


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

自定义操作

如果您需要除insertreplace以外的其他操作,您可以使用generateItemCustomAction信号槽。您还需要在$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['randomdata']['allowedActions']数组中设置您的操作。