Table of Contents
前言
在撰寫程式碼時,我們常常需要弄一些測試用的假資料來填充資料庫或是版面,faker 就是一個處理這件事的好用工具。
使用方式
安裝
請用 composer
composer require fzaninotto/faker
基本用法
require_once 'vendor/autoload.php';
$faker = Faker\Factory::create();
echo $faker->name;
echo $faker->address;
echo $faker->text;
配合地區語系(Localization)
require_once 'vendor/autoload.php';
$faker = Faker\Factory::create('zh_TW'); // 設定語系為繁體中文
echo $faker->name(); // 中文人名
echo $faker->lastName(); // 中文 姓
echo $faker->firstName(); // 中文 名
echo $faker->address(); // 中文地址
echo $faker->realText(500); // 500 個字的中文文章段落
數字類型的測試資料
require_once 'vendor/autoload.php';
$faker = Faker\Factory::create();
echo $faker->randomDigit; // 0 ~ 9 間的隨機數字
echo $faker->randomDigitNot(4); // 0 ~ 9 間的隨機數字,除了 4 之外
echo $faker->randomNumber($nbDigits = NULL, $strict = false); // 隨機整數
echo $faker->randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL); // 隨機浮點數
echo $faker->numberBetween($min = 1, $max = 100); // 1 到 100 間的隨機整數
Lorem Ipsum 類型的測試資料
word: 單字。
sentence: 句子,預設有 6 個單字。
paragraph: 段落,預設有 3 個句子。
$faker = Faker\Factory::create();
echo $faker->word; // 單字
var_dump($faker->words($nb = 3, $asText = false)); // 回傳含有 3 個 word 的陣列
echo $faker->sentence($nbWords = 6, $variableNbWords = true); // 句子
var_dump($faker->sentences($nb = 3, $asText = false)); // 回傳含有 3 個 sentence 的陣列
echo $faker->paragraph($nbSentences = 3, $variableNbSentences = true); // 段落
var_dump($faker->paragraphs($nb = 3, $asText = false)); // 回傳含有 3 個 paragraph 的陣列
echo $faker->text($maxNbChars = 200); // 200 字以上的段落
網路相關的測試資料
require_once 'vendor/autoload.php';
$faker = Faker\Factory::create();
echo $faker->email; // 'neoma30@wisozk.com'
echo $faker->safeEmail; // 'langworth.nyasia@example.com'
echo $faker->userName; // 'savanah16'
echo $faker->password; // 'E({8'@,6"'
echo $faker->domainName; // 'oreilly.info'
echo $faker->url; // 'https://russel.com/omnis-exercitationem-dolore-debitis-doloremque.html'
echo $faker->slug; // 'dolor-fuga-doloribus-voluptas-est-a-fugiat-nulla'
echo $faker->ipv4; // '6.245.190.94'
echo $faker->localIpv4; // '192.168.3.175'
echo $faker->ipv6; // '9938:ed5b:bccf:53f1:9f8c:2d3d:dd2e:d53f'
echo $faker->macAddress; // '76:09:4D:08:5C:A9'
時間相關的測試資料
require_once 'vendor/autoload.php';
$faker = Faker\Factory::create();
echo $faker->unixTime($max = 'now'); // 1508798019
var_dump($faker->dateTime($max = 'now', $timezone = null)); // DateTime('1989-07-21 17:22:12.000000', 'UTC')
echo $faker->date($format = 'Y-m-d', $max = 'now'); // '2004-10-09'
echo $faker->time($format = 'H:i:s', $max = 'now'); // '11:04:48'
var_dump($faker->dateTimeThisYear($max = 'now', $timezone = null)); // DateTime('2020-02-03 05:25:23.000000', 'UTC')
var_dump($faker->dateTimeThisMonth($max = 'now', $timezone = null)); // DateTime('2020-09-18 08:35:14.000000', 'UTC')
echo $faker->amPm($max = 'now'); // 'pm' or '上午' - 依語系
echo $faker->dayOfMonth($max = 'now'); // '15'
echo $faker->dayOfWeek($max = 'now'); // 'Friday' or '星期六' - 依語系
echo $faker->month($max = 'now'); // '04'
echo $faker->monthName($max = 'now'); // 'July' or '七月' - 依語系
echo $faker->year($max = 'now'); // '2017'
echo $faker->timezone; // 'Europe/Kaliningrad'
還有很多奇奇怪怪的資料型態,等有用到再來補充。
Comments