love-snow

laravel faker 数据填充 中文数据填充 单元测试数据填充 数据的类型有哪些?

Installation 安装

laravel5 已经安装,这里不需要安装了,其他框架,可以借鉴。

composer require fzaninotto/faker

Basic Usage 基本用法

Use Faker\Factory::create() 要创建和初始化一个faker生成器,它可以通过访问您想要的数据类型的属性来生成数据。

 1 <?php
 2 // 包含 Faker 的 autoloader
 3 require_once \'/path/to/Faker/src/autoload.php\';
 4 // 或者,使用另一个psr-0兼容的自动加载器(例如,如Symfony2类加载器)
 5 
 6 // 使用工厂创建一个Faker生成器实例
 7 $faker = Faker\Factory::create(\'zh_CN\'); //如果使用中文填充数据可以加入 ‘zh_CN’, 不需要的可以留空
 8 
 9 // 通过访问属性生成数据
10 echo $faker->name;
11   // \'Lucy Cechtelar\';
12 echo $faker->address;
13   // "426 Jordy Lodge
14   // Cartwrightshire, SC 88120-6700"
15 echo $faker->text;
16   // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
17   // et sit et mollitia sed.
18   // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
19   // sit minima sint.

中文参考https://github.com/fzaninotto/Faker/tree/master/src/Faker/Provider/zh_CN

即使这个例子显示了一个属性访问, 每个调用 $faker->name 的调用都产生一个不同的(随机的)结果. 这是因为 Faker 调用了__get() 魔术方法, 并且将 Faker\Generator->$property 调用给 Faker\Generator->format($property).

提示:对于快速生成的假数据,您还可以使用Faker作为命令行工具,这要归功于伪造者-cli。

 1 <?php
 2 for ($i=0; $i < 10; $i++) {
 3   echo $faker->name, "\n";
 4 }
 5   // Adaline Reichel
 6   // Dr. Santa Prosacco DVM
 7   // Noemy Vandervort V
 8   // Lexi O\'Conner
 9   // Gracie Weber
10   // Roscoe Johns
11   // Emmett Lebsack
12   // Keegan Thiel
13   // Wellington Koelpin II
14   // Ms. Karley Kiehn V

Formatters 格式化器

每个生成器属性 (例如 nameaddress, and lorem) 都被称谓 "formatters". 一个faker生成器有很多, 打包在“提供者”中。下面是默认区域中绑定的格式化程序的列表。

Faker\Provider\Base 基本

randomDigit             // 7
randomDigitNotNull      // 5
randomNumber($nbDigits = NULL, $strict = false) // 79907610
randomFloat($nbMaxDecimals = NULL, $min = 0, $max = NULL) // 48.8932
numberBetween($min = 1000, $max = 9000) // 8567
randomLetter            // \'b\'
// 返回一个给定数组的随机有序序列
randomElements($array = array (\'a\',\'b\',\'c\'), $count = 1) // array(\'c\')
randomElement($array = array (\'a\',\'b\',\'c\')) // \'b\'
shuffle(\'hello, world\') // \'rlo,h eoldlw\'
shuffle(array(1, 2, 3)) // array(2, 1, 3)
numerify(\'Hello ###\') // \'Hello 609\'
lexify(\'Hello ???\') // \'Hello wgt\'
bothify(\'Hello ##??\') // \'Hello 42jz\'
asciify(\'Hello ***\') // \'Hello R6+\'
regexify(\'[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\'); // sm0@y8k96a.ej

Faker\Provider\Lorem 文本

word                                             // \'aut\'
words($nb = 3, $asText = false)                  // array(\'porro\', \'sed\', \'magni\')
sentence($nbWords = 6, $variableNbWords = true)  // \'Sit vitae voluptas sint non voluptates.\'
sentences($nb = 3, $asText = false)              // array(\'Optio quos qui illo error.\', \'Laborum vero a officia id corporis.\', \'Saepe provident esse hic eligendi.\')
paragraph($nbSentences = 3, $variableNbSentences = true) // \'Ut ab voluptas sed a nam. Sint autem inventore aut officia aut aut blanditiis. Ducimus eos odit amet et est ut eum.\'
paragraphs($nb = 3, $asText = false)             // array(\'Quidem ut sunt et quidem est accusamus aut. Fuga est placeat rerum ut. Enim ex eveniet facere sunt.\', \'Aut nam et eum architecto fugit repellendus illo. Qui ex esse veritatis.\', \'Possimus omnis aut incidunt sunt. Asperiores incidunt iure sequi cum culpa rem. Rerum exercitationem est rem.\')
text($maxNbChars = 200)                          // \'Fuga totam reiciendis qui architecto fugiat nemo. Consequatur recusandae qui cupiditate eos quod.\'

Faker\Provider\en_US\Person 人物

title($gender = null|\'male\'|\'female\')     // \'Ms.\'
titleMale                                 // \'Mr.\'
titleFemale                               // \'Ms.\'
suffix                                    // \'Jr.\'
name($gender = null|\'male\'|\'female\')      // \'Dr. Zane Stroman\'
firstName($gender = null|\'male\'|\'female\') // \'Maynard\'
firstNameMale                             // \'Maynard\'
firstNameFemale                           // \'Rachel\'
lastName                                  // \'Zulauf\'

Faker\Provider\en_US\Address 地址

cityPrefix                          // \'Lake\'
secondaryAddress                    // \'Suite 961\'
state                               // \'NewMexico\'
stateAbbr                           // \'OH\'
citySuffix                          // \'borough\'
streetSuffix                        // \'Keys\'
buildingNumber                      // \'484\'
city                                // \'West Judge\'
streetName                          // \'Keegan Trail\'
streetAddress                       // \'439 Karley Loaf Suite 897\'
postcode                            // \'17916\'
address                             // \'8888 Cummings Vista Apt. 101, Susanbury, NY 95473\'
country                             // \'Falkland Islands (Malvinas)\'
latitude($min = -90, $max = 90)     // 77.147489
longitude($min = -180, $max = 180)  // 86.211205

Faker\Provider\en_US\PhoneNumber 电话号码

phoneNumber             // \'201-886-0269 x3767\'
tollFreePhoneNumber     // \'(888) 937-7238\'
e164PhoneNumber     // \'+27113456789\'

Faker\Provider\en_US\Company 公司

catchPhrase             // \'Monitored regional contingency\'
bs                      // \'e-enable robust architectures\'
company                 // \'Bogan-Treutel\'
companySuffix           // \'and Sons\'
jobTitle                // \'Cashier\'

Faker\Provider\en_US\Text 文本

realText($maxNbChars = 200, $indexSize = 2) // "And yet I wish you could manage it?) \'And what are they made of?\' Alice asked in a shrill, passionate voice. \'Would YOU like cats if you were never even spoke to Time!\' \'Perhaps not,\' Alice replied."

Faker\Provider\DateTime 日期时间

unixTime($max = \'now\')                // 58781813
dateTime($max = \'now\', $timezone = date_default_timezone_get()) // DateTime(\'2008-04-25 08:37:17\', \'UTC\')
dateTimeAD($max = \'now\', $timezone = date_default_timezone_get()) // DateTime(\'1800-04-29 20:38:49\', \'Europe/Paris\')
iso8601($max = \'now\')                 // \'1978-12-09T10:10:29+0000\'
date($format = \'Y-m-d\', $max = \'now\') // \'1979-06-09\'
time($format = \'H:i:s\', $max = \'now\') // \'20:49:42\'
dateTimeBetween($startDate = \'-30 years\', $endDate = \'now\', $timezone = date_default_timezone_get()) // DateTime(\'2003-03-15 02:00:49\', \'Africa/Lagos\')
dateTimeInInterval($startDate = \'-30 years\', $interval = \'+ 5 days\', $timezone = date_default_timezone_get()) // DateTime(\'2003-03-15 02:00:49\', \'Antartica/Vostok\')
dateTimeThisCentury($max = \'now\', $timezone = date_default_timezone_get())     // DateTime(\'1915-05-30 19:28:21\', \'UTC\')
dateTimeThisDecade($max = \'now\', $timezone = date_default_timezone_get())      // DateTime(\'2007-05-29 22:30:48\', \'Europe/Paris\')
dateTimeThisYear($max = \'now\', $timezone = date_default_timezone_get())        // DateTime(\'2011-02-27 20:52:14\', \'Africa/Lagos\')
dateTimeThisMonth($max = \'now\', $timezone = date_default_timezone_get())       // DateTime(\'2011-10-23 13:46:23\', \'Antarctica/Vostok\')
amPm($max = \'now\')                    // \'pm\'
dayOfMonth($max = \'now\')              // \'04\'
dayOfWeek($max = \'now\')               // \'Friday\'
month($max = \'now\')                   // \'06\'
monthName($max = \'now\')               // \'January\'
year($max = \'now\')                    // \'1993\'
century                               // \'VI\'
timezone                              // \'Europe/Paris\'

Faker\Provider\Internet 互联网

email                   // \'tkshlerin@collins.com\'
safeEmail               // \'king.alford@example.org\'
freeEmail               // \'bradley72@gmail.com\'
companyEmail            // \'russel.durward@mcdermott.org\'
freeEmailDomain         // \'yahoo.com\'
safeEmailDomain         // \'example.org\'
userName                // \'wade55\'
password                // \'k&|X+a45*2[\'
domainName              // \'wolffdeckow.net\'
domainWord              // \'feeney\'
tld                     // \'biz\'
url                     // \'http://www.skilesdonnelly.biz/aut-accusantium-ut-architecto-sit-et.html\'
slug                    // \'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum\'
ipv4                    // \'109.133.32.252\'
localIpv4               // \'10.242.58.8\'
ipv6                    // \'8e65:933d:22ee:a232:f1c1:2741:1f10:117c\'
macAddress              // \'43:85:B7:08:10:CA\'

Faker\Provider\UserAgent 用户代理

userAgent              // \'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350\'
chrome                 // \'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312\'
firefox                // \'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6\'
safari                 // \'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3\'
opera                  // \'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00\'
internetExplorer       // \'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)\'

Faker\Provider\Payment 支付

creditCardType          // \'MasterCard\'
creditCardNumber        // \'4485480221084675\'
creditCardExpirationDate // 04/13
creditCardExpirationDateString // \'04/13\'
creditCardDetails       // array(\'MasterCard\', \'4485480221084675\', \'Aleksander Nowak\', \'04/13\')
// 生成一个随机的国际银行账号(IBAN). 设置 $countryCode 为空 生成一个随机的国家
iban($countryCode)      // \'IT31A8497112740YZ575DJ28BP4\'
swiftBicNumber          // \'RZTIAT22263\'

Faker\Provider\Color 颜色

hexcolor               // \'#fa3cc2\'
rgbcolor               // \'0,255,122\'
rgbColorAsArray        // array(0,255,122)
rgbCssColor            // \'rgb(0,255,122)\'
safeColorName          // \'fuchsia\'
colorName              // \'Gainsbor\'

Faker\Provider\File 文件

fileExtension          // \'avi\'
mimeType               // \'video/x-msvideo\'
// 将一个随机文件从源文件复制到目标目录,并返回fullpath或filename
file($sourceDir = \'/tmp\', $targetDir = \'/tmp\') // \'/path/to/targetDir/13b73edae8443990be1aa8f1a483bc27.jpg\'
file($sourceDir, $targetDir, false) // \'13b73edae8443990be1aa8f1a483bc27.jpg\'

Faker\Provider\Image 图片

// Image generation provided by LoremPixel (http://lorempixel.com/)
imageUrl($width = 640, $height = 480) // \'http://lorempixel.com/640/480/\'
imageUrl($width, $height, \'cats\')     // \'http://lorempixel.com/800/600/cats/\'
imageUrl($width, $height, \'cats\', true, \'Faker\') // \'http://lorempixel.com/800/400/cats/Faker\'
imageUrl($width, $height, \'cats\', true, \'Faker\', true) // \'http://lorempixel.com/grey/800/400/cats/Faker/\' Monochrome image
image($dir = \'/tmp\', $width = 640, $height = 480) // \'/tmp/13b73edae8443990be1aa8f1a483bc27.jpg\'
image($dir, $width, $height, \'cats\')  // \'tmp/13b73edae8443990be1aa8f1a483bc27.jpg\' it\'s a cat!
image($dir, $width, $height, \'cats\', false) // \'13b73edae8443990be1aa8f1a483bc27.jpg\' it\'s a filename without path
image($dir, $width, $height, \'cats\', true, false) // it\'s a no randomize images (default: `true`)
image($dir, $width, $height, \'cats\', true, true, \'Faker\') // \'tmp/13b73edae8443990be1aa8f1a483bc27.jpg\' it\'s a cat with \'Faker\' text. Default, `null`.

Faker\Provider\Uuid UUID

uuid                   // \'7e57d004-2b97-0e7a-b45f-5387367791cd\'

Faker\Provider\Barcode 条形码

ean13          // \'4006381333931\'
ean8           // \'73513537\'
isbn13         // \'9790404436093\'
isbn10         // \'4881416324\'

Faker\Provider\Miscellaneous 各种各样的

boolean // false
boolean($chanceOfGettingTrue = 50) // true
md5           // \'de99a620c50f2990e87144735cd357e7\'
sha1          // \'f08e7f04ca1a413807ebc47551a40a20a0b4de5c\'
sha256        // \'0061e4c60dac5c1d82db0135a42e00c89ae3a333e7c26485321f24348c7e98a5\'
locale        // en_UK
countryCode   // UK
languageCode  // en
currencyCode  // EUR
emoji         // 

分类:

技术点:

相关文章: