Skip to content
This repository was archived by the owner on Apr 1, 2024. It is now read-only.

Repository files navigation

Build StatusLatest Stable VersionGitHub license

This package helps you to manage faked models. Make, create and store in database. This factory is another way to work with fixtures and inspired by factories in laravel.

Requirements

  • PHP 7.0 +

Instalation

composer require dmirogin/fakemodel

How to use

  1. Add component to your application configuration

    'factory' => [
    'class' => \dmirogin\fakemodel\ModelFactory::class,
    'resolvers' => [
    [
    'class' => \dmirogin\fakemodel\resolvers\FakerResolver::class,
    'definitions' => [
    \app\models\MyModel::class => function (\Faker\Generator$faker) {
    return [
    'id' => $faker->numberBetween(1, 100),
    'username' => $faker->userName,
    'password' => $faker->password
    ];
    }
    ]
    ]
    ]
    ],
  2. Now you can do:

Yii::$app->factory->setModel(\app\models\MyModel::class)->make();

Function in base TestCase

In your base TestCase class you can create simple function:

/** * Create model factory * * @param string $model * @param int $amount * @return \dmirogin\fakemodel\ModelFactory */protectedfunctionfactory(string$model, int$amount = 1): \dmirogin\fakemodel\ModelFactory
{
/** @var \dmirogin\fakemodel\ModelFactory $factory */$factory = Yii::$app->factory;
return$factory->setModel($model)->setAmount($amount);
}

and call just by:

$this->factory(\app\models\MyModel::class)->make();

Enhanced example

'factory' => [
'class' => \dmirogin\fakemodel\ModelFactory::class,
'resolvers' => [
[
'class' => \dmirogin\fakemodel\resolvers\FakerResolver::class,
'definitions' => [
\app\models\MyModel::class => function (\Faker\Generator$faker) {
return [
'id' => $faker->numberBetween(1, 100),
'username' => $faker->userName,
'password' => $faker->password
];
}
]
],
[
'class' => \dmirogin\fakemodel\resolvers\StatesResolver::class,
'definitions' => [
\app\models\MyModel::class => [
'admin' => [
'id' => 1
]
]
]
]
]
],
Yii::$app->factory->setModel(\app\models\MyModel::class)->states(['admin'])->setAmount(5)->make();

See more in WIKI.

About

Make, create and store models in database. Another way to work with fixtures in Yii2.

Topics

Resources

Stars

30 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages