Использование Faker для генерации тестовых данных в Yii2

       Yii2      yii2    faker      913    

Об использовании Faker для генерации тестовых данных на любом сайте здесь . Здесь речь пойдёт о генерации тестовых данных для сайта на Yii2 с помощью того же Faker.

Faker в Yii2 поставляется «из коробки». Убедиться в этом можно открыв файл coomposer.json:

"yiisoft/yii2-faker": "~2.0.0"	

Генерировать тестовые данные будем в SiteContoller.php

Простая генерация с выводом данных

use Faker\Factory;

public function actionGenerate()
{
  $faker = Factory::create();

  echo $faker->text(35).'<br>';
  echo $faker->text(rand(100, 200));
}

Генерация нескольких постов и записей в БД

Нам потребуется модель. Можно воспользоваться Gii (предварительно должно быть подключение к БД и создана соответветствующая таблица)

use Faker\Factory;

public function actionGenerate()
{
  $faker = Factory::create();

  for($i = 0; $i < 100; $i++)
  {
    $post = new Posts();
    $post->title = $faker->text(30);
    $post->anons = $faker->text(rand(100, 200));
    $post->content = $faker->text(rand(1000, 2000));
    $post->status = rand(0, 1);
    $post->created_at = $faker->unixTime();
    $post->save(false);
  }
  die('Data generation is complete!');
}

Генерация множества записей

use Faker\Factory;

public function actionGenerate()
{
  $faker = Factory::create();

  for($i = 0; $i < 100; $i++)
  {
    $posts = [];
    for ($j = 0; $j < 100; $j++)
    {
      $posts[] = [
        $faker->text(30),
        $faker->text(rand(100, 200)),
        $faker->text(rand(1000, 2000)),
        rand(0, 1),
        $faker->unixTime()
      ];
    }
    Yii::$app->db->createCommand()->batchInsert('posts', ['title', 'anons', 'content', 'status', 'created_at'], $posts)->execute();
    unset($posts);
  }
  die('Data generation is complete!');
}
Комментарии временно оключены

Поиск

Популярное