Faker ist eine von Francois Zaninotto entwickelte Open-Source-Bibliothek, die künstliche Fülldaten für Ihre Anwendung und deren Testanforderungen generiert.
Faker kann in einer Vanilla-PHP-Anwendung, einem Framework wie Yii oder Laravel oder in einer Testbibliothek verwendet werden, auf die wir in diesem früheren Envato Tuts + -Tutorial mit Codeception verwiesen haben.
Im heutigen Tutorial werde ich die grundlegende Installation und Verwendung von Faker und seine Funktionen überprüfen. Wie Zaninotto sagt:
"Egal, ob Sie Ihre Datenbank bootstrapieren müssen, gut aussehende XML-Dokumente erstellen, Ihre Beharrlichkeit beim Stresstest angeben oder Daten aus einem Produktionsdienst anonymisieren möchten, Faker ist für Sie da."
Insgesamt bietet es eine Vielzahl einfacher Funktionen, die für jedes Testprogramm von Nutzen sind.
Eine kleine Erinnerung, bevor wir anfangen, nehme ich an den Kommentarthreads unten teil. Ich bin besonders interessiert, wenn Sie weitere Gedanken haben oder Themen für zukünftige Tutorials vorschlagen möchten. Wenn Sie eine Frage oder ein Thema haben, schreiben Sie bitte unten. Sie können mich auch direkt auf Twitter @reifman erreichen.
Ich begann mit dem Erstellen eines neuen Codebaums und dem Hinzufügen Fzaninotto / Faker
zu composer.json unten:
"name": "Faker Demonstration", "description": "für Envato Tuts +", "Schlüsselwörter": ["faker", "php", "jeff reifman"], "homepage": "http: // www. lookahead.io/ "," type ":" project "," license ":" BSD-3-Klausel "," Mindeststabilität ":" stable "," required ": " php ":"> = 5.6. 0 "," fzaninotto / faker ":" * "
Dann habe ich den Komponisten aktualisiert:
$ composer update Composer-Repositorys mit Paketinformationen laden Abhängigkeiten aktualisieren (einschließlich requir-dev) - fzaninotto / faker (v1.6.0) installieren Aus Cache laden Sperrdatei schreiben Dateien werden automatisch generiert
Faker wird im Herstellerverzeichnis installiert. Dann habe ich am Anfang einer index.php-Datei geladen:
Als nächstes wollte ich ein paar einfache Beispielszenarien für das Generieren von Daten ausprobieren.
Einfache Beispiele
Ich habe die Faker-Beispiele wie folgt erweitert und sie von http: // localhost: 8888 / faker ausgeführt:
Name; // 'Lucy Cechtelar'; Abstandshalter(); Echo $ Faker-> Adresse; // "426 Jordy Lodge // Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> text; // Dolores sitzen im Labor von Laboratorien und Freunden. Beatae nam sunt fugit // und sitzen und mollitia sed. // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium // Minima sint. Abstandshalter(); Funktion Spacer () Echo '
'; ?>Mit schnellen Aktualisierungen wurden mir unterschiedliche Ergebnisse präsentiert, z.
Ruthie Beier 37851 Gusikowski Flat Suite 594 Port Keithmouth, NM 06110 Weitere Informationen finden Sie hier. Error maiores qui vero non omnis. Quaerat mollitia dolore erhält ein quia quidem beatae.Und:
Darron Hessel 657 Elijah Lock Suite 202 Nitzschemouth, AZ 11166 Culpa dolorum quidem distinctio eius necessitatibus. Mollitia ut nostrum et ut quas veniam et. Unde iure belästigungen aperiam fuga voluptatibus quo.Und:
Fredy Fadel MD 53328 Eldora Insel Apt. 634 West Eleanore, CA 95798-3025 In den Warenkorb Weitere Produkte aus Laudantium eveniet ad. Qui a voluptatibus est quia voluptatem. Dolorum pariatur quaerat nulla.Faker hält, was er verspricht.
Faker-Standardanbieter
Alle Datengenerierungsmethoden in Faker werden aus der Implementierung von Providern erstellt. Hier ist der Code, der die Standardanbieter von Faker registriert - das ist für Sie erledigt:
addProvider (neuer Faker \ Provider \ en_US \ Person ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ Address ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ PhoneNumber ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ en_US \ Company ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (neuer Faker \ Provider \ Internet ($ faker));Also oben, als ich einen beantragte
Adresse
von Faker durchsuchte es alle Anbieter nach übereinstimmenden Methoden, die letztendlich mit derAdresse()
Anbieter.Sie können auch eigene Anbieter schreiben oder eine Reihe von im Internet verfügbaren Erweiterungen von Faker durchsuchen.
Modifikatoren
Faker bietet auch spezielle Modifizierer an, um Sie beim Testen zu unterstützen, z. B. unique (), optional () oder valid (). Sie können beispielsweise eindeutige Nummern generieren:
// unique () zwingt Anbieter zur Rückgabe eindeutiger Werte $ values = array (); für ($ i = 0; $ i < 10; $i++) // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unique () -> randomDigit; print_r ($ values);Hier ist die Ausgabe von eindeutigen Werten:
Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => 5 [5] => 1 [6] => 8 [7] => 4 [8] => 9 [9] => 3)Wenn Sie die
wahlweise()
werden einige Zahlen als zurückgegebenNULL
als ob der Benutzer kein Feld in Ihrem Formular eingegeben hätte. Hinweis: Ich kann diese Methode nicht richtig ausführen.Mit
gültig()
, Sie können Funktionen registrieren, die bestimmen, ob die Fülldaten bestimmten Anforderungen entsprechen oder einen Fehler zurückgeben oder eine Fehlermeldung auf einem Benutzerformular generieren.Die Anbieter erkunden
Faker bietet eine breite Palette von Methoden zum Generieren von Zufallsdaten für Ihre Anwendung an:
Lassen Sie uns mit ein paar weiteren Methoden experimentieren.
Der folgende Code generiert zehn Personen, deren Kreditkarteninformationen und Sicherheitscodes:
$ faker = Faker \ Factory :: create (); für ($ i = 0; $ i<10;$i++) $cc = $faker->Kreditkartendetails; $ cc ['security'] = $ faker-> numberBetween (199,499); var_dump ($ cc); Spacer (2);
Hier ist eine Ausgabe aus dem obigen Code:
Hier ist ein einfaches Beispiel für die Bilderzeugung:
$ faker = Faker \ Factory :: create (); $ width = 320; $ height = 240; Echo '';
Sie können aber auch Katzen generieren:
Echo ' ";
Möglicherweise hat mich die Fähigkeit zur Generierung von Katzen überzeugt. Ich kann es kaum erwarten, dass dreidimensionales Drucken und die Aktivierung der Seele mit solchen Sachen funktionieren.
Mit dem folgenden Code habe ich eine Tabelle mit vier Spalten mit Namen aus Frankreich, Russland, Amerika und China erstellt:
Echo '
Französisch | Russisch | Englisch | Chinesisch |
---|---|---|---|
'; $ faker = Faker \ Factory :: create ('fr_FR'); // einen französischen Faker erstellen für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ' | '; $ faker = Faker \ Factory :: create ('Ru_RU'); // russisch erstellen für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ' | '; $ faker = Faker \ Factory :: create ('En_US'); // Erstelle Englisch für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Spacer (2); Echo ' | '; $ faker = Faker \ Factory :: create ('zh_CN'); // Erzeuge Chinesisch für ($ i = 0; $ i < 10; $i++) echo $faker->Name; Abstandshalter(); Echo ' |
Hier ist die Ausgabe:
Beispielcode zum Generieren von 25 gefälschten E-Mail-Adressen von kostenlosen Anbietern wie Google Mail und Yahoo:
$ values = array (); für ($ i = 0; $ i < 25; $i++) // get a random digit, but also null sometimes $values []= $faker->freeEmail (); print_r ($ values); Ausfahrt;
Hier ist die resultierende Ausgabe:
Faker bietet ein hilfreiches Beispiel für die Generierung von XML. Es ist jedoch erforderlich, dass Sie mit einem Framework arbeiten und über eine Ansichtsarchitektur verfügen:
boolean (25)):?> streetAddress?> Stadt?> Postleitzahl?> Zustand?> boolean (33)):?> boolean (15)):?>bs?> boolean (33)):?> Text (400)?>]]>
Ich hoffe, dass dies für Sie eine grundlegende Einführung in Faker war, eine unglaublich nützliche, kostenlose Open-Source-PHP-Bibliothek.
Wenn Sie weiter lesen möchten, empfehle ich den Filler-Inhalt von Jim Nielsen: Tools, Tipps und ein dynamisches Beispiel (Envato Tuts +), das dem Anwendungsentwickler die Möglichkeit bietet, Daten zu generieren. Er schlägt vor, dass Sie effektiver sein können, wenn Sie gefälschte Daten anwenden, um ein realistischeres Erlebnis während Ihres Designprozesses zu schaffen.
Wenn Sie wissen möchten, wann mein nächstes Envato Tuts + -Tutorial erscheint, folgen Sie mir @reifman auf Twitter oder besuchen Sie meine Instructor-Seite. Momentan arbeite ich an zwei Serien, die Sie vielleicht schätzen: