nicholasjohn16/generate

Anahita CLI 的生成命令

安装: 14

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:anahita-extension

v1.0.0 2018-06-27 09:24 UTC

This package is auto-updated.

Last update: 2024-09-06 11:10:50 UTC


README

生成命令用于自动生成测试和开发用的示例数据。

安装

安装通过 composer 完成。由于这是一个开发工具,所以将其作为开发工具要求,以便在生产环境中不进行安装。

composer require nicholasjohn16/generate --dev

使用方法

生成命令集成到 Anahita 的 CLI 中。要使用它,您只需要传递您希望为它生成示例数据的仓库和实体名称。可选地,您可以使用 count 参数传递要生成的实体数量。默认为 10。

anahita generate:sample repo.entity [--count|-c="..."] [relationships1] ... [relationshipsN]

例如

anahita generate:sample people.person

上述命令将生成 10 个人员实体。

关系

在生成实体时可以指定关系。对于一对多关系,您可以通过用冒号分隔关系名称和 id 来可选地提供一个关系的 id。如果没有提供 id,则关系下的子项将被随机选择。

例如,如果我们想随机生成一个具有 id 为 2 的所有者和一个随机作者的笔记,我们将使用以下命令

anahita generate:sample notes.note owner:2 author

尚不支持多对多关系。

属性

属性根据其实体定义随机生成。非必填属性有可能是 null。如果生成的值是 null 且它们有默认值,则将使用默认值。使用 Faker PHP 库生成随机值。每个属性所使用的提供者基于 config.json 设置。每种属性类型都有自己的默认值,然后是每个实体属性的默认值。未列出的属性将被跳过并且不会生成。

这些默认值可以被覆盖并扩展以包括您自己的实体属性。对于您的项目,在 Anahita 安装的主目录中创建一个 sample.json 文件,并添加一个如下的 repo 和 entity 对象。

{
  "myrepo": {
    "myentity": {

    }
  }
}

然后,在您的实体中列出您希望随机生成的任何附加属性。此外,您可以可选地覆盖用于属性类型的提供者及其传递的任何参数。您还可以使用相同的方法覆盖核心默认值。提供者必须返回一个字符串、整数、布尔值或 DateTime 对象。

{
  "myrepo": {
    "myentity": {
      "bookISBN": {
        "provider": "isbn13"
      },
      "enabled": {
        "arguments": [50]
      },
      "subtitle": {}
    }
  }
}