Faker är ett open-source bibliotek skapat av Francois Zaninotto som genererar konstgjorda fyllnadsdata för din applikation och dess testbehov.
Faker kan användas i en vanilj PHP-applikation, ett ramverk som Yii eller Laravel, eller inom ett testbibliotek som vi hänvisade till med Codeception i denna tidigare Envato Tuts + handledning.
I dagens handledning granskar jag den grundläggande installationen och användningen av Faker och dess möjligheter. Som Zaninotto säger:
"Om du behöver starta upp din databas, skapa snygga XML-dokument, fyll i din persistens för att testa det eller anonymisera data som tagits från en produktionstjänst, är Faker för dig."
Och totalt sett levererar det ett brett utbud av enkla funktioner som är användbara för alla testregimer.
En liten påminnelse innan vi börjar, deltar jag i kommenterade trådar nedan. Jag är särskilt intresserad om du har ytterligare tankar eller vill föreslå ämnen för framtida handledning. Om du har en fråga eller ett ämne förslag, vänligen posta nedan. Du kan också nå mig på Twitter @ reifman direkt.
Jag började med att skapa ett nytt kodträd och lägga till fzaninotto / faker
till composer.json nedan:
"name": "Faker Demonstration", "description": "för Envato Tuts +", "nyckelord": ["faker", "php", "jeff reifman"], "hemsida": "http: // www. lookahead.io/ "," type ":" projekt "," licens ":" BSD-3-Clause "," minimumstabilitet ":" stabilt "," kräver ": " php ":"> = 5.6. 0 "," fzaninotto / faker ":" * "
Sedan uppdaterade jag kompositör:
$ composer-uppdatering Laddar kompositarkataloger med paketinformation Uppdatering av beroenden (inklusive krav-dev) - Installera fzaninotto / faker (v1.6.0) Laddar från cache Skriva låsfil Generera autoload-filer
Faker installeras i leverantörskatalogen. Så, då laddades jag överst på en index.php-fil:
Därefter ville jag prova några enkla exempel scenarier för att generera data.
Enkla exempel
Jag utvidgade Faker-exemplen enligt följande och sprang dem från http: // localhost: 8888 / faker:
namn; // "Lucy Cechtelar"; spacer (); echo $ faker-> adress; // "426 Jordy Lodge // Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> text; // Dolores sitter sint laboriosam dolorem culpa et autem. Beatae namnger sin fula // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium // sitta minima sint. spacer (); funktion spacer () echo '
'; ?>Med snabba uppdateringar presenterades jag med varierande resultat som:
Ruthie Beier 37851 Gusikowski Plattsvit 594 Port Keithmouth, NM 06110 Återupptas av suscipit sitt moderna arkitektoniska behov. Fel kan du göra när du vill. Quaerat mollitia dolore deserunt quia quidem beatae.Och:
Darron Hessel 657 Elijah Lås Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum är ett distinkt och nödvändigt behov. Mollitia ut nostrum et ut quas veniam et. Unde iure molestiae aperiam fuga voluptatibus quo.Och:
Fredy Fadel MD 53328 Eldora Isle Apt. 634 West Eleanore, CA 95798-3025 Eligendi eos laudantium eveniet ad. Med en voluptatibus är det volymen. Dolorumpariatur quaerat nulla.Faker levererar på sitt löfte.
Faker standardleverantörer
Alla datagenereringsmetoderna i Faker skapas från genomförandet av leverantörer. Här är koden som registrerar Faker standardleverantörer-det är gjort för dig:
addProvider (ny Faker \ Provider \ sv_US \ Person ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ sv_US \ Address ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ sv_US \ PhoneNumber ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ sv_US \ Company ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (ny Faker \ Provider \ Internet ($ faker));Så ovan, när jag begärde en
adress
från Faker sökte det alla leverantörer för metoder som matchade, i slutändan att användaAdress()
leverantör.Du kan också skriva dina egna leverantörer eller bläddra i ett antal tillägg till Faker som finns tillgängliga på webben.
modifierare
Faker erbjuder även speciella modifierare som hjälper dig att testa, t.ex. unika (), valfria () eller giltiga (). Du kan till exempel generera unika nummer:
// unika () krafter leverantörer att returnera unika värden $ values = array (); för ($ i = 0; $ i < 10; $i++) // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unika () -> randomDigit; print_r ($ värden);Här är resultatet av unika värden:
Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => 5 [5] => 1 [6] => 8 [7] => 4 [8] => 9 [9] => 3)Om du använder
valfri()
metod kommer vissa nummer att returneras somNULL
som om användaren inte angav ett fält på din blankett. Obs! Jag kunde inte få den här metoden att fungera korrekt.Med
giltig()
, Du kan registrera funktioner som avgör om fyllnadsdatan uppfyller specifika krav eller skulle returnera ett fel eller skapa ett felmeddelande på användarformulär.Utforska leverantörerna
Faker erbjuder en bred uppsättning metoder för att generera slumpmässiga data för din ansökan:
Låt oss experimentera med några fler av dessa metoder.
Koden nedan genererar tio personer, deras kreditkortsuppgifter och säkerhetskoder:
$ faker = Faker \ Factory :: skapa (); för ($ i = 0; $ i<10;$i++) $cc = $faker->credit; $ Cc [ 'säkerhet'] = $ FÅKER-> numberBetween (199.499); var_dump ($ cc); distans (2);
Här är några resultat från ovanstående kod:
Här är ett enkelt exempel på bildgenerering:
$ faker = Faker \ Factory :: skapa (); $ Width = 320; $ Height = 240; eko "';
Men du kan också skapa katter:
eko "';
Det kan vara kattgenereringskapaciteten som vann mig över. Jag kan inte vänta på tredimensionell utskrift och själaktivering för att arbeta med saker som detta.
Med koden nedan skapade jag ett bord med fyra kolumner med namn från Frankrike, Ryssland, Amerika och Kina:
eko "
franska | ryska | engelsk | kinesisk |
---|---|---|---|
'; $ faker = Faker \ Factory :: skapa ('fr_FR'); // skapa en fransk faker för ($ i = 0; $ i < 10; $i++) echo $faker->namn; spacer (); distansorganet (2); eko " | '; $ faker = Faker \ Factory :: skapa ('Ru_RU'); // skapa ryska för ($ i = 0; $ i < 10; $i++) echo $faker->namn; spacer (); distansorganet (2); eko " | '; $ faker = Faker \ Factory :: skapa ('En_US'); // skapa engelska för ($ i = 0; $ i < 10; $i++) echo $faker->namn; spacer (); distansorganet (2); eko " | '; $ faker = Faker \ Factory :: skapa ('zh_CN'); // skapa kinesiska för ($ i = 0; $ i < 10; $i++) echo $faker->namn; spacer (); eko |
Här är utgången:
Här är exempelkod för att generera 25 falska e-postadresser från gratis leverantörer som Gmail och Yahoo:
$ värden = array (); för ($ i = 0; $ i < 25; $i++) // get a random digit, but also null sometimes $values []= $faker->freeEmail (); print_r ($ värden); utgång;
Här är den resulterande produktionen:
Faker erbjuder ett bra exempel på att generera XML; Det kräver dock att du arbetar med ett ramverk och har en arkitektur:
booleska (25)):?> streetAddress?> stad?> postnummer?> state?> booleska (33)):?> booleska (15)):?>bs?> booleska (33)):?> text (400)?>]]>
Jag hoppas att detta har fungerat som en grundläggande introduktion för dig till Faker, ett otroligt användbart gratis, open-source PHP-bibliotek.
Om du vill läsa mer, rekommenderar jag Jim Nielsens fyllnadsinnehåll: Verktyg, tips och ett dynamiskt exempel (Envato Tuts +), vilket ger en applikationsdesigners uppgift att generera data. Han föreslår att du kan vara effektivare när du tillämpar falska data för att skapa en mer realistisk upplevelse under din designprocess.
Om du vill veta när min nästa Envato Tuts + handledning kommer, följ mig @ reifman på Twitter eller kolla min instruktörssida. För närvarande arbetar jag med två serier som du kan uppskatta: