Yii2 使用 faker 生成假數據


測試過程中有時候需要生成大量的假數據,faker 是一個生成假數據的類庫,可以生成姓名,電話,IP地址,密碼,ISBN等等你能想到的或者你想不到的各種類型的假數據。

Yii2.0已經集成該類庫,不用再下載了。

以Yii2.0 Basic版為例

1. config\console.php 中添加一條配置信息

'controllerMap' => [
    'fixture' => [
        'class' => 'yii\faker\FixtureController',
    ],
],

注意頂部,定義test測試目錄的位置的代碼。

Yii::setAlias('@tests', dirname(__DIR__) . '/tests');

2. 創建生成假信息的模版文件

在test目錄下面依次新建unit/templates/fixtures目錄

然后在fixtures目錄下新建users.php文件。內容如下:

// users.php file under template path (by default @tests/unit/templates/fixtures)
/**
 * @var $faker \Faker\Generator
 * @var $index integer
 */
return [
    'name' => $faker->firstName,
    'phone' => $faker->phoneNumber,
    'city' => $faker->city,
    'password' => Yii::$app->getSecurity()->generatePasswordHash('password_' . $index),
    'auth_key' => Yii::$app->getSecurity()->generateRandomString(),
    'intro' => $faker->sentence(7, true),  // generate a sentence with 7 words
];

3. 打開命令行,執行生成假記錄命令 

php yii fixture/generate users

生成的假數據位於tests\unit\fixtures\data\users.php

打開如下,有了假數據內容,剩下的就好辦了 :)

<?php

return [
    [
        'name' => 'Dawn',
        'phone' => '1-931-080-3527x751',
        'city' => 'Schinnerberg',
        'password' => '$2y$13$ax7ubTMdQoUBkAdQfgW38uPD3Lp9C/X7XfdfSMFl8L1N90PpdXQoK',
        'auth_key' => 'zmk_N4ZX_kOgu72iiWvPFZDUHEhQGYsg',
        'intro' => 'Adipisci nostrum et autem molestias odio.',
    ],
    [
        'name' => 'Hubert',
        'phone' => '1-618-327-3265x917',
        'city' => 'Auerstad',
        'password' => '$2y$13$gSjD/GJZiuPQdjB5FXyf0.fZCD9Jm6KquYRFyoaU6fgT3HHHiRa/q',
        'auth_key' => 'zAVYEriQJJF16DtwwzesVM84gA1UhxFK',
        'intro' => 'Maiores voluptas possimus nihil nesciunt qui commodi maiores qui.',
    ],
];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM