Faker(3)--Base 類別中的基本方法
昨天有提到 Generator
有 addProvider()
方法,可以把各式各樣的 Provider 加入 Generator。而也有提到 Generator 的屬性或方法,會轉接到 Provider 提供的方法。
雖然沒有硬性規定,不過它的 Provider 都有繼承自 Provider\Base
的基礎類別,這個類別定義了很多產生假資料的基本方法,讓我們一起來看看。
Random
基本隨機取樣的方法
$generator = new Faker\Generator(); |
輸出效果如下:
2 |
這些是最基本的隨機取樣方法,後面提到的其他 Provider 會依賴這些方法來取得隨機樣本。
Shuffle
基本的洗亂方法:
$generator = new Faker\Generator(); |
輸出效果如下:
array ( |
特殊符號轉化成亂數
特別的是,它有一些方法,可以把字串樣版裡的 wildcard 使用亂數取代,如:
$generator = new Faker\Generator(); |
輸出效果如下:
取代範例:833 554 ??? *** |
規則是:
#
會用randomDigit()
的結果取代%
會用randomDigitNot()
的結果取代?
會用randomLetter()
的結果取代*
會用randomAscii()
的結果取代
不同的方法會取代不同的 wildcard,這是為了保留在不同場合使用適合方法的彈性。
numerify()
只會取代#
和%
lexify()
只會取代?
asciify()
只會取代*
bothify()
會全取代
正則亂數產生器
這個產生器很有趣,通常我們會使用正則來檢驗 Email 是否是正常的,如:
preg_match('/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/', '[email protected]') |
而 regexify()
這個方法是反過來,用正則來產生符合規則的假資料:
$regex = '/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/'; |
輸出效果:
d%363@m.ncqs |
注意:官方 doc block 有提醒,這個方法會「非常地」慢。
今天先介紹 Provider 基本產假資料的方法,未來介紹其他 Provider 都會使用到這些方法來產生更多樣化的假資料。