Faker er et åpen kildebibliotek opprettet av Francois Zaninotto som genererer kunstige fyllingsdata for din søknad og dens testbehov.
Faker kan brukes i en vanilje PHP-applikasjon, et rammeverk som Yii eller Laravel, eller i et testbibliotek som vi fortalte med Codeception i denne tidligere Envato Tuts + opplæringen.
I dagens veiledning vurderer jeg grunnleggende installasjon og bruk av Faker og dens evner. Som Zaninotto sier:
"Uansett om du trenger å starte opp databasen, opprette flotte XML-dokumenter, fyll ut din utholdenhet til å teste det, eller anonymisere data hentet fra en produksjonstjeneste, er Faker for deg."
Og samlet gir den et bredt spekter av enkle egenskaper som er nyttige for alle testregimer.
En liten påminnelse før vi kommer i gang, deltar jeg i kommentertrådene nedenfor. Jeg er spesielt interessert hvis du har flere tanker eller vil foreslå emner for fremtidige opplæringsprogrammer. Hvis du har et spørsmål eller et emneforslag, vennligst legg inn under. Du kan også nå meg på Twitter @ reifman direkte.
Jeg begynte med å lage et nytt kode tre og legge til fzaninotto / faker
til komponist.json nedenfor:
"navn": "Faker Demonstration", "beskrivelse": "for Envato Tuts +", "søkeord": ["faker", "php", "jeff reifman"], "hjemmeside": "http: // www. lookahead.io/ "," type ":" prosjekt "," lisens ":" BSD-3-Clause "," minimumsstabilitet ":" stabilt "," krever ": " php ":"> = 5.6. 0 "," fzaninotto / faker ":" * "
Så oppdaterte jeg komponist:
$ komponentoppdatering Laster inn kompositorbeholdninger med pakkedata Oppdatere avhengigheter (inkludert krav-dev) - Installere fzaninotto / faker (v1.6.0) Laster fra cache Skrive låsfil Generere autoload-filer
Faker er installert i leverandørkatalogen. Så da lastet jeg øverst på en index.php-fil:
Deretter ønsket jeg å prøve noen enkle eksempel scenarier for å generere data.
Enkle eksempler
Jeg utvidet Faker-eksemplene som følger, og kjørte dem fra http: // localhost: 8888 / faker:
Navn; // 'Lucy Cechtelar'; avstandsstykke (); ekko $ faker-> adresse; // "426 Jordy Lodge // Cartwrightshire, SC 88120-6700" spacer (); ekko $ faker-> tekst; // Dolores er sint laboriosam dolorem culpa et autem. Beatae tok en skikkelig følelse. // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium // sit minima sint. avstandsstykke (); funksjon spacer () echo '
'; ?>Med rask oppdatering ble jeg presentert med varierende resultater som:
Ruthie Beier 37851 Gusikowski Flat Suite 594 Port Keithmouth, NM 06110 Tilbakestill eos suscipit er moderne arkitektonisk nødvendighet. Feil på maiores qui vero non omnis. Quaerat mollitia dolore deserunt quia quidem beatae.Og:
Darron Hessel 657 Elijah Lock Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum er et utmerket valg for deg. Mollitia ut nostrum et ut quas veniam et. Unde iure molestiae aperiam fuga voluptatibus quo.Og:
Fredy Fadel MD 53328 Eldora Isle Apt. 634 West Eleanore, CA 95798-3025 Eligendi eos laudantium eveniet ad. Med en voluptatibus er quia voluptatem. Dolorum pariatur quaerat nulla.Faker leverer på sitt løfte.
Faker er standardleverandører
Alle datagenereringsmetodene i Faker er opprettet fra implementering av leverandører. Her er koden som registrerer Faker standardleverandører-det er gjort for deg:
addProvider (ny Faker \ Provider \ no_US \ Person ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ no_US \ Address ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ no_US \ PhoneNumber ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ no_US \ Company ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ Internet ($ faker));Så over, da jeg ba om en
adresse
fra Faker, søkte det alle tilbydere for metoder som matchet, til slutt å brukeAdresse()
forsørger.Du kan også skrive dine egne leverandører eller bla gjennom en rekke utvidelser til Faker som er tilgjengelige på nettet.
modifikatorer
Faker tilbyr også spesielle modifikatorer for å hjelpe testen din, for eksempel unike (), valgfrie () eller gyldige (). For eksempel kan du generere unike tall:
// unike () krefter leverandører å returnere unike verdier $ values = array (); for ($ i = 0; $ i < 10; $i++) // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unik () -> randomDigit; print_r ($ verdier);Her er resultatet av unike verdier:
Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => 5 [5] => 1 [6] => 8 [7] => 4 [8] => 9 [9] => 3)Hvis du bruker
valgfri()
metode, noen tall vil bli returnert somNULL
som om brukeren ikke skrev inn et felt på skjemaet ditt. Merk: Jeg kunne ikke få denne metoden til å fungere skikkelig.Med
gyldig()
, Du kan registrere funksjoner som bestemmer om fyllnadsdataene oppfyller spesifikke krav eller vil returnere en feil eller generere en feilmelding på et brukerskjema.Utforske leverandørene
Faker tilbyr et bredt sett med metoder for å generere tilfeldige data for din søknad:
La oss eksperimentere med noen flere av disse metodene.
Koden nedenfor genererer ti personer, deres kredittkortinformasjon og sikkerhetskoder:
$ faker = Faker \ Factory :: create (); for ($ i = 0; $ i<10;$i++) $cc = $faker->creditCardDetails; $ Cc [ 'sikkerhet'] = $ faker-> numberBetween (199,499); var_dump ($ cc); spacer (2);
Her er noen utdata fra koden ovenfor:
Her er et enkelt eksempel på bildegenerering:
$ faker = Faker \ Factory :: create (); $ Width = 320; $ Height = 240; ekko '';
Men du kan også generere katter:
ekko '';
Det kan være kattegenereringskapasiteten som vant meg over. Jeg kan ikke vente på tredimensjonal utskrift og sjelaktivering for å jobbe med ting som dette.
Med koden nedenfor opprettet jeg et bord med fire kolonner med navn fra Frankrike, Russland, Amerika og Kina:
ekko '
fransk | russisk | Engelsk | kinesisk |
---|---|---|---|
'; $ faker = Faker \ Factory :: create ('fr_FR'); // lage en fransk faker for ($ i = 0; $ i < 10; $i++) echo $faker->Navn; avstandsstykke (); spacer (2); ekko ' | '; $ faker = Faker \ Factory :: create ('Ru_RU'); // opprett russisk for ($ i = 0; $ i < 10; $i++) echo $faker->Navn; avstandsstykke (); spacer (2); ekko ' | '; $ faker = Faker \ Factory :: create ('En_US'); // lage engelsk for ($ i = 0; $ i < 10; $i++) echo $faker->Navn; avstandsstykke (); spacer (2); ekko ' | '; $ faker = Faker \ Factory :: create ('zh_CN'); // lage kinesisk for ($ i = 0; $ i < 10; $i++) echo $faker->Navn; avstandsstykke (); ekko ' |
Her er utgangen:
Her er eksempelkode for å generere 25 falske e-postadresser fra gratis tilbydere som Gmail og Yahoo:
$ values = array (); for ($ i = 0; $ i < 25; $i++) // get a random digit, but also null sometimes $values []= $faker->freeEmail (); print_r ($ verdier); exit;
Her er resultatet:
Faker tilbyr et nyttig eksempel på å generere XML; Det krever imidlertid at du jobber med et rammeverk og har en visningsarkitektur:
booleske (25)):?> streetAddress?> by?> postnummer?> state?> boolsk (33)):?> booleske (15)):?>bs?> boolsk (33)):?> tekst (400)?>]]>
Jeg håper at dette har fungert som en grunnleggende introduksjon for deg til Faker, et utrolig nyttig gratis, åpen kildekode-PHP-bibliotek.
Hvis du vil lese videre, anbefaler jeg Jim Nielsens Filler Content: Verktøy, tips og et dynamisk eksempel (Envato Tuts +), som gir en applikasjonsdesigners ta på seg generering av data. Han foreslår at du kan være mer effektiv når du bruker falske data for å skape en mer realistisk opplevelse under designprosessen.
Hvis du vil vite når min neste Envato Tuts + opplæring kommer, følg meg @ reifman på Twitter eller sjekk min instruktørside. For tiden jobber jeg med to serier du kan sette pris på: