Faker è una libreria open source creata da Francois Zaninotto che genera dati di filler artificiali per la tua applicazione e le sue esigenze di test.
Faker può essere utilizzato in un'applicazione PHP vanilla, un framework come Yii o Laravel, o all'interno di una libreria di test come abbiamo fatto allusione a Codeception in questo precedente tutorial Envato Tuts +.
Nel tutorial di oggi, esaminerò l'installazione e l'utilizzo di base di Faker e le sue funzionalità. Come dice Zaninotto:
"Se hai bisogno di riavviare il tuo database, creare documenti XML di bell'aspetto, riempire la tua persistenza per metterlo alla prova, o rendere anonimi i dati presi da un servizio di produzione, Faker fa per te."
E, nel complesso, offre una vasta gamma di semplici funzionalità utili per qualsiasi regime di test.
Un piccolo promemoria prima di iniziare, parteciperò alle discussioni dei commenti qui sotto. Sono particolarmente interessato se hai ulteriori pensieri o vuoi suggerire argomenti per futuri tutorial. Se hai una domanda o un suggerimento sull'argomento, per favore pubblica qui sotto. Puoi anche raggiungermi su Twitter direttamente @reifman.
Ho iniziato creando un nuovo albero di codice e aggiungendo fzaninotto / falsario
a composer.json qui sotto:
"name": "Faker Demonstration", "description": "per Envato Tuts +", "keywords": ["faker", "php", "jeff reifman"], "homepage": "http: // www. lookahead.io/ "," type ":" project "," license ":" BSD-3-Clause "," minimum-stability ":" stable "," require ": " php ":"> = 5.6. 0 "," fzaninotto / faker ":" * "
Quindi, ho aggiornato il compositore:
$ compositore aggiornamento Caricamento dei repository di compositore con informazioni sul pacchetto Aggiornamento delle dipendenze (incluso require-dev) - Installazione di fzaninotto / faker (v1.6.0) Caricamento dalla cache Scrittura del file di blocco Generazione dei file di caricamento automatico
Faker è installato nella directory del fornitore. Quindi, poi ho caricato nella parte superiore di un file index.php:
Successivamente, ho voluto provare alcuni semplici esempi di scenari di generazione di dati.
Semplici esempi
Ho esteso gli esempi Faker come segue e li ho eseguiti da http: // localhost: 8888 / faker:
nome; // "Lucy Cechtelar"; distanziatore (); echo $ faker-> indirizzo; // "426 Jordy Lodge // Cartwrightshire, SC 88120-6700" spacer (); echo $ faker-> testo; // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit // et sit et mollitia sed. // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium // sit minimi sint. distanziatore (); function spacer () echo '
'; ?>Con aggiornamenti rapidi, mi è stato presentato con risultati variabili come:
Ruthie Beier 37851 Gusikowski Flat Suite 594 Port Keithmouth, NM 06110 Reprehenderit eos suscipit sit modi architecto necessitatibus. Errore maiores qui vero non omnis. Quaerat mollitia dolore deserunt quia quidem beatae.E:
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 molestiae aperiam fuga voluptatibus quo.E:
Fredy Fadel MD 53328 Eldora Isle Apt. 634 West Eleanore, CA 95798-3025 Eligendi eos laudantium eveniet ad. Qui a voluptatibus est quia voluptatem. Dolorum pariatur quaerat nulla.Faker mantiene la sua promessa.
Provider predefiniti di Faker
Tutti i metodi di generazione dei dati in Faker sono creati dall'implementazione dei provider. Ecco il codice che registra i provider predefiniti di Faker: è fatto per te:
addProvider (nuovo Faker \ Provider \ en_US \ Person ($ faker)); $ faker-> addProvider (new Faker \ Provider \ en_US \ Address ($ faker)); $ faker-> addProvider (new Faker \ Provider \ en_US \ PhoneNumber ($ faker)); $ faker-> addProvider (new Faker \ Provider \ en_US \ Company ($ faker)); $ faker-> addProvider (new Faker \ Provider \ Lorem ($ faker)); $ faker-> addProvider (nuovo Faker \ Provider \ Internet ($ faker));Così sopra, quando ho richiesto un
indirizzo
da Faker, ha cercato tutti i fornitori per i metodi che corrispondevano, utilizzando in ultima analisi ilIndirizzo()
fornitore.Puoi anche scrivere i tuoi fornitori o sfogliare un numero di estensioni su Faker disponibili sul web.
modificatori
Faker offre anche modificatori speciali per aiutare i test, come unique (), optional () o valid (). Ad esempio, puoi generare numeri unici:
// unique () forza i provider a restituire valori univoci $ values = array (); per ($ i = 0; $ i < 10; $i++) // get a random digit, but always a new one, to avoid duplicates $values []= $faker->unico () -> randomDigit; print_r ($ values);Ecco l'output di valori unici:
Array ([0] => 7 [1] => 6 [2] => 0 [3] => 2 [4] => 5 [5] => 1 [6] => 8 [7] => 4 [8] => 9 [9] => 3)Se usi il
opzionale()
metodo, alcuni numeri verranno restituiti comeNULLO
come se l'utente non avesse inserito un campo nel modulo. Nota: non ho potuto ottenere questo metodo per funzionare correttamente.Con
valido()
, è possibile registrare le funzioni che determinano se i dati di riempimento soddisfano requisiti specifici o restituire un errore o generare un messaggio di errore su un modulo utente.Esplorando i fornitori
Faker offre un ampio set di metodi per generare dati casuali per la tua applicazione:
Sperimentiamo con alcuni di questi metodi.
Il codice sottostante genera dieci persone, i loro dati di carte di credito e i codici di sicurezza:
$ faker = Faker \ Factory :: create (); per ($ i = 0; $ i<10;$i++) $cc = $faker->dettagli della carta di credito; $ Cc [ 'sicurezza'] = $ faker-> numberBetween (199.499); var_dump ($ cc); spacer (2);
Ecco alcuni output del codice sopra:
Ecco un semplice esempio di generazione di immagini:
$ faker = Faker \ Factory :: create (); $ Width = 320; $ Height = 240; eco '';
Ma puoi anche generare gatti:
eco '';
Potrebbe essere la capacità di generazione dei gatti che mi ha conquistato. Non vedo l'ora che la stampa tridimensionale e l'attivazione dell'anima funzionino con cose del genere.
Con il codice qui sotto, ho creato un tavolo con quattro colonne di nomi di Francia, Russia, America e Cina:
eco '
francese | russo | Inglese | Cinese |
---|---|---|---|
'; $ faker = Faker \ Factory :: create ('fr_FR'); // crea un faker francese per ($ i = 0; $ i < 10; $i++) echo $faker->nome; distanziatore (); spacer (2); eco ' | '; $ faker = Faker \ Factory :: create ('Ru_RU'); // crea il russo per ($ i = 0; $ i < 10; $i++) echo $faker->nome; distanziatore (); spacer (2); eco ' | '; $ faker = Faker \ Factory :: create ('En_US'); // crea l'inglese per ($ i = 0; $ i < 10; $i++) echo $faker->nome; distanziatore (); spacer (2); eco ' | '; $ faker = Faker \ Factory :: create ('zh_CN'); // crea il cinese per ($ i = 0; $ i < 10; $i++) echo $faker->nome; distanziatore (); eco ' |
Ecco l'output:
Ecco un codice di esempio per generare 25 indirizzi email falsi da provider gratuiti come Gmail e Yahoo:
$ values = array (); per ($ i = 0; $ i < 25; $i++) // get a random digit, but also null sometimes $values []= $faker->freeEmail (); print_r ($ values); Uscita;
Ecco l'output risultante:
Faker offre un utile esempio di generazione di XML; tuttavia, è necessario che tu stia lavorando con un framework e abbia un'architettura di visualizzazione:
booleano (25)):?> streetAddress?> città?> codice postale?> stato?> booleano (33)):?> booleano (15)):?>bs?> booleano (33)):?> testo (400)?>]]>
Spero che questa sia stata un'introduzione di base a Faker, una libreria PHP open source gratuita e incredibilmente utile.
Se vuoi leggere oltre, ti consiglio Jim Nielsen's Filler Content: Tools, Tips e un esempio dinamico (Envato Tuts +), che fornisce la capacità di un designer dell'applicazione di generare dati. Ti suggerisce di essere più efficace quando applichi dati falsi per creare un'esperienza più realistica durante il processo di progettazione.
Se vuoi sapere quando arriverà il mio prossimo tutorial Envato Tuts +, seguimi @reifman su Twitter o controlla la mia pagina di istruttore. Attualmente sto lavorando su due serie che potresti apprezzare: