Faker este o bibliotecă open-source creată de Francois Zaninotto care generează date de umplere artificială pentru aplicația dvs. și necesitățile sale de testare.
Faker poate fi folosit într-o aplicație PHP de vanilie, într-un cadru cum ar fi Yii sau Laravel sau într-o bibliotecă de testare la care ne-am referit cu Codeception în acest tutorial anterior Envato Tuts +.
În tutorialul de astăzi, voi examina instalarea și utilizarea de bază ale lui Faker și capabilitățile acestuia. După cum spune Zaninotto:
"Fie că aveți nevoie să vă bootstrați baza de date, să creați documente excelente XML, să completați persistența dvs. pentru a testa stresul, sau să anonimați datele preluate de la un serviciu de producție, Faker este pentru dvs.".
Și, în ansamblu, oferă o gamă largă de capabilități simple, utile pentru orice regim de testare.
Un mic memento inainte de a incepe, eu particip la comentariile de mai jos. Sunt interesat în special dacă aveți gânduri suplimentare sau doriți să sugerați subiecte pentru tutoriale viitoare. Dacă aveți o sugestie de întrebare sau subiect, vă rugăm să postați mai jos. Puteți să mă contactați și pe Twitter @reifman direct.
Am început prin crearea unui nou copac de cod și adăugarea fzaninotto / falsificator
la compozitor.json de mai jos:
"nume": "Demonstrație Faker", "descriere": "pentru Envato Tuts +", "cuvinte cheie": ["faker", "php", "jeff reifman"], "homepage": "http: // www. lookahead.io/ "," tip ":" proiect "," licență ":" BSD-3-Clauză "," minimă stabilitate ":" stabil "," solicită ": " php ": => = 0 "," fzaninotto / faker ":" * "
Apoi, am actualizat compozitorul:
Actualizarea dependențelor (inclusiv requ-dev) - Instalarea fzaninotto / faker (v1.6.0) Încărcare din cache Fișier de blocare de scriere Generarea fișierelor autoload
Faker este instalat în directorul furnizorului. Deci, am încărcat în partea de sus a unui fișier index.php:
În continuare, am vrut să încerc câteva exemple simple de scenarii de generare de date.
Exemple simple
Am extins exemplele Faker după cum urmează și le-am fugit de la http: // localhost: 8888 / faker:
Nume; // "Lucy Cechtelar"; distanțier(); echo $ faker-> adresa; // "426 Jordy Lodge / Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> text; // Dolores se află în laboratorul de culturi și autoturisme. Beatae sunt fugit / et sit et mollitia sed. Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium / / sit minima sint. distanțier(); funcția spacer () echo '
„; ?>Cu reîmprospătare rapidă, mi s-au prezentat rezultate variate, cum ar fi:
Ruthie Beier 37851 Flat Suite Gusikowski 594 Port Keithmouth, NM 06110 Reprezentarea unui reprezentant al unui modem arhitect necesar. Eroare maiores qui vero non omnis. Quaerat mollitia dolore deserunt quia quidem beatae.Și:
Darron Hessel 657 Elijah Lock Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum quidem distincțio eius necesitatibus. Mollitia ut nostrum și ut quas veniam et. În cazul în care iure molestiae aperiam fuga voluptatibus quo.Și:
Fredy Fadel MD 53328 Eldora Isle Apt. 634 West Eleanore, CA 95798-3025 Eligendi eos laudantium eveniet ad. Într-adevăr, voluptatibus est quia voluptatem. Dolorum pariatur quaerat nulla.Faker își îndeplinește promisiunea.
Furnizorii impliciți ai Faker
Toate metodele de generare a datelor din Faker sunt create din implementarea furnizorilor. Iată codul care înregistrează furnizorii impliciți ai Faker - este făcut pentru dvs.:
addProvider (noul Faker \ Provider \ ro_US \ Persoană ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ Adresa ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ PhoneNumber ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ ro_US \ Company ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (noul Faker \ Provider \ Internet ($ faker));Deci, mai sus, când am cerut o
adresa
de la Faker, a căutat pe toți furnizorii pentru metode potrivite, folosind în cele din urmăAdresa()
furnizor.Puteți, de asemenea, să vă scrieți proprii furnizori sau să căutați un număr de extensii la Faker care sunt disponibile pe web.
Modificatorii
Faker oferă, de asemenea, modificatori specifici pentru a vă ajuta să vă testați, cum ar fi unic (), opțional () sau valid (). De exemplu, puteți genera numere unice:
// unique () forțează furnizorilor să returneze valori unice $ values = array (); pentru ($ i = 0; $ i < 10; $i++) // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unic () -> randomDigit; print_r (valori $);Iată rezultatul valorilor unice:
Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => [8] => 9 [9] => 3)Dacă utilizați
opțional ()
metoda, unele numere vor fi returnate caNUL
ca și cum utilizatorul nu a introdus un câmp pe formularul dvs.. Notă: Nu am putut obține această metodă să funcționeze corect.Cu
valabil()
, puteți înregistra funcții care determină dacă datele de umplere îndeplinesc anumite cerințe sau ar repeta o eroare sau ar genera un mesaj de eroare pe un formular de utilizator.Explorarea furnizorilor
Faker oferă un set larg de metode de generare a datelor aleatorii pentru aplicația dvs.:
Să experimentăm câteva alte metode.
Codul de mai jos generează zece persoane, informațiile despre cărțile de credit și codurile de securitate:
$ faker = Faker \ Fabrica :: crea (); pentru ($ i = 0; $ i<10;$i++) $cc = $faker->Detaliile cardului de credit; $ Cc [ 'securitate'] = $ faker-> numberBetween (199,499); var_dump ($ cc); distanța (2);
Iată câteva rezultate din codul de mai sus:
Iată un exemplu simplu de generare a imaginii:
$ faker = Faker \ Fabrica :: crea (); $ Width = 320; $ Înălțime = 240; echo " ';
Dar puteți genera și pisici:
echo " ';
S-ar putea să fie capacitatea de generare a pisicilor care ma câștigat. Nu pot să aștept tipărirea tridimensională și activarea sufletului pentru a lucra cu lucruri de genul asta.
Cu codul de mai jos, am creat un tabel cu patru coloane de nume din Franța, Rusia, America și China:
echo "
limba franceza | Rusă | Engleză | chinez |
---|---|---|---|
„; $ faker = Faker \ Factory :: crea ('fr_FR'); // crea un falsificator francez pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo " | „; $ faker = Faker \ Factory :: crea ('Ru_RU'); // creați limba rusă pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo " | „; $ faker = Faker \ Factory :: crea ('En_US'); // creați limba engleză pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); spacer (2); echo " | „; $ faker = Faker \ Factory :: crea ('zh_CN'); // crează chineză pentru ($ i = 0; $ i < 10; $i++) echo $faker->Nume; distanțier(); echo ' |
Iată rezultatele:
Iată un exemplu de cod pentru a genera 25 de adrese false de e-mail de la furnizori gratuit, cum ar fi Gmail și Yahoo:
$ valori = array (); pentru ($ i = 0; $ i < 25; $i++) // get a random digit, but also null sometimes $values []= $faker->freeEmail (); print_r (valori $); Ieșire;
Iată rezultatul rezultat:
Faker oferă un exemplu util de generare a XML; cu toate acestea, este necesar să lucrați cu un cadru și să aveți o arhitectură de vizualizare:
boolean (25)): a> Acasă? oraș?> cod poștal? stat?> boolean (33)):>> boolean (15)):>>bs?> boolean (33)):>> text (400)?>]]>
Sper că acest lucru a servit ca o introducere de bază pentru tine, către Faker, o bibliotecă PHP gratuită, liberă, cu o bază liberă.
Dacă vreți să citiți mai departe, vă recomandăm conținutul de filler al lui Jim Nielsen: Instrumente, sfaturi și un exemplu dinamic (Envato Tuts +), care oferă un designer de aplicații să se ocupe de generarea de date. El sugerează că puteți fi mai eficient atunci când aplicați date false pentru a crea o experiență mai realistă în timpul procesului de proiectare.
Dacă doriți să știți când vine următorul tutorial Envato Tuts +, urmați-mă @reifman pe Twitter sau verificați pagina de instructor. În prezent, lucrez la două serii pe care le puteți aprecia: