nelmio/alice

表达式固定值生成器

维护者

详细信息

github.com/nelmio/alice

源代码

问题

资助包维护!
theofidry

安装量: 34,166,331

依赖项: 154

建议者: 4

安全: 0

星星: 2,485

关注者: 51

分支: 330

公开问题: 47

3.13.6 2024-07-03 17:54 UTC

README

Alice - 表达式固定值生成器

Package version Build Status Slack License

依赖 FakerPHP/Faker,Alice 允许你在开发或测试项目时创建大量固定值/虚假数据。它为你提供了一些基本工具,使生成具有约束的复杂数据变得非常简单、易于阅读和编辑,以便团队中的每个人都可以在需要时调整固定值。

警告:本文档适用于 alice 3.0。如果您想查看 2.x 的文档,请点击 此链接.

2.x 正处于维护模式:PR 被接受,但维护者不再对其进行积极开发。

目录

  1. 安装
  2. 示例
  3. 入门
    1. 基本用法
    2. 框架集成
      1. Symfony
  4. 完整参考
    1. 创建固定值
      1. YAML
      2. PHP
      3. JSON
    2. 固定值范围
    3. 固定值列表
    4. 固定值参考
    5. 调用方法
      1. 带有标志的方法参数
      2. 带有参数的方法参数
    6. 指定构造函数参数
    7. 使用工厂/命名构造函数
    8. 可选数据
    9. 处理唯一约束
  5. 处理关系
    1. 参考
    2. 多重参考
    3. 自引用
    4. 将引用传递给提供者
  6. 保持固定值干燥
    1. 固定值继承
    2. 包含文件
    3. 变量
    4. 参数
      1. 静态参数
      2. 动态参数
      3. 复合参数
      4. 与函数(包括构造函数)一起使用
      5. 注入外部参数
  7. 自定义数据生成
    1. Faker 数据
      1. 本地化虚假数据
      2. 随机数据
      3. 默认提供者
        1. 身份
        2. 当前
        3. 铸造
    2. 自定义 Faker 数据提供者
  8. 高级指南
    1. 性能
    2. 表达式语言(DSL)
      1. 参数
      2. 函数
      3. 身份
      4. 数组
      5. 可选
      6. 参考
      7. 属性引用
    3. 扩展 Alice
      1. 自定义标志
      2. 自定义实例化
      3. 自定义访问器
  9. 第三方库
    1. Symfony
    2. Nette
    3. Zend Framework 2
    4. 框架无关
  10. 贡献
    1. 2.x 和 3.x 之间的差异
    2. 架构
      1. FixtureBuilder
      2. 生成器
    3. 表达式语言
    4. 贡献
      1. 测试
      2. 分析
  11. 向后兼容性承诺(BCP)
  12. 升级
    1. Alice 2.x 和 3.0 之间的破坏性更改

安装

可以通过 Composernelmio/alice 的形式安装

composer require --dev nelmio/alice

示例

以下是一个完整的实体声明示例

Nelmio\Entity\User:
    user{1..10}:
        username: '<username()>'
        fullname: '<firstName()> <lastName()>'
        birthDate: '<date_create()>'
        email: '<email()>'
        favoriteNumber: '50%? <numberBetween(1, 200)>'

Nelmio\Entity\Group:
    group1:
        name: Admins
        owner: '@user1'
        members: '<numberBetween(1, 10)>x @user*'
        created: '<dateTimeBetween("-200 days", "now")>'
        updated: '<dateTimeBetween($created, "now")>'

然后您可以轻松地加载它们

$loader = new Nelmio\Alice\Loader\NativeLoader();
$objectSet = $loader->loadFile(__DIR__.'/fixtures.yml');

或立即加载一个数组

$loader = new Nelmio\Alice\Loader\NativeLoader();
$objectSet = $loader->loadData([
    \Nelmio\Entity\User::class => [
        'user{1..10}' => [
            'username' => '<username()>',
            'fullname' => '<firstName()> <lastName()>',
            'birthDate' => '<date_create()>',
            'email' => '<email()>',
            'favoriteNumber' => '50%? <numberBetween(1, 200)>',
        ],
    ],
    \Nelmio\Entity\Group::class => [
        'group1' => [
            'name' => 'Admins',
            'owner' => '@user1',
            'members' => '<numberBetween(1, 10)>x @user*',
            'created' => '<dateTimeBetween("-200 days", "now")>',
            'updated' => '<dateTimeBetween($created, "now")>',
        ],
    ],
]);

有关更多信息,请参阅 文档

第三方库

框架无关

Symfony

Nette

WordPress

Zend Framework 2

贡献

检查贡献指南

向后兼容性承诺(BCP)

该政策在主要部分上与Symfony的政策相同,但有一些更改或重点。

  • 标记为@private@internal的代码不包括在BCP中
  • Nelmio\Alice\Loader\NativeLoader被排除在BCP之外:因为它不是DIC解决方案,注册新服务可能需要新方法,在这种情况下,如果你的代码已经声明了该方法,则可能会导致你的代码中断。为了避免这种情况,请务必注意你的方法命名以避免任何冲突。

升级

检查升级指南