nicholasjohn16 / generate
Anahita CLI 的生成命令
Requires
- php: >=5.6
- anahita/anahita: 4.3.*
- fzaninotto/faker: ^1.7
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": {}
}
}
}