Faker Helper: Generiamo massive quantità di dati falsi.

16 Apr 2019 | M.A.D.R.

Vi è mai capitato di dover testare un'applicazione con dei dati FAKE? Fake Helper consente di creare molte tipologie di dati per la gestione dei test.

Lo strumento provvede a generare diversi tipi di dati, dalla stringa random alla generazione di nomi, cognomi, url, email, path, array, numeri e chi più ne ha ne metta, l'unico vincolo è la fantasia...

Anticipo sin da subito che questo snippet Faker Helper necessita di 2 snippet

e anche 2 file di dizionario rispettivamente nomi.dat e cognomi.dat che saranno resi disponibili insieme allo snippet.

Cosa permette di fare il nostro snippet?

Caricare i dati di test per provare l'applicazione, vediamo alcuni esempi pratici...

Vediamo che la prima cosa che verifichiamo è l'esistenza di 2 funzioni rese disponibile nei due helper di cui sopra, subito dopo la prima e vera funzione del nostro faker_helper.

Per comodità elenco in modo programmatico la lista delle funzioni, semplici e senza commenti.

  • faker_string
  • random_num
  • faker_name (necessita di un file dizionario per i nomi)
  • faker_cognome (necessita di un file dizionario per i cognomi)
  • faker_email
  • faker_url
  • faker_path
  • faker_data
  • faker_array
  • faker_named

NB: Queste funzioni possono essere richiamate senza passare nessun parametro!

/**
 * Copyright (c) 2019. Licenza Open Source - public domine
 * Il codice di questo file è reso disponibile secondo le regole vigente e con licenza d'uso PD.
 * Il codice riportato è un programma di cui codice sorgente è reso disponibile completo di tutte le sue
 * funzionalità e può essere modificato secondo le proprie esigenze.
 * Qualora il codice risultasse copiato su altri portali senza citarne la fonte saranno applicate tutte le
 * disposizioni in materia di Proprietà Intellettuale.
 */

/**
 * Created by phpS
 * User: macus_adi
 * Project Name: utils_git
 * File: faker_helper.php
 * Path: root/helper/faker_helper.php
 * Date: 17/02/2019
 * Time: 10:26
 */

if(!function_exists('random_string'))include_once __DIR__.'/string_helper.php';
if(!function_exists('add_time'))include_once __DIR__.'/date_helper.php';
if(!function_exists('faker_string')){
	function faker_string(){
		return random_string();
	}
}

if(!function_exists('random_num')){
	function random_num($min=0,$max=1000000){
		return rand($min,$max);
	}
}


if(!function_exists('faker_name')){
	function faker_name(){
		$fi=file(__DIR__.'/faker/nomi.dat');
		return ucfirst($fi[rand(0,count($fi)-1)]);
	}
}
if(!function_exists('faker_cognome')){
	function faker_cognome(){
		$fi=file(__DIR__.'/faker/cognomi.dat');
		return ucfirst($fi[rand(0,count($fi)-1)]);
	}
}

if(!function_exists('faker_email')){
	function faker_email(){
		return faker_name().'.'.faker_cognome().'@'.faker_string().'.'.random_string('alpha',3);
	}
}

if(!function_exists('faker_url')){
	function faker_url(){
		return 'https://'.random_string('alpha',10).'.'.random_string('alpha',3).'/'.faker_path(rand(2,8));
	}
}
if(!function_exists('faker_path')){
	function faker_path($max_dep=4){
		$str='';
		for($i=0;$i<$max_dep;$i++){
			$str.=random_string('alnum',rand(1,8)).'/';
		}
		return $str;
	}
}

if(!function_exists('faker_data')){
	function faker_data(){
		$t=time();
		($t%2==0)?$t=$t-(14400*rand(1,1000)):$t=$t+(14400*rand(1,1000));
		return time_to_date($t);
	}
}
if(!function_exists('faker_array')){
	function faker_array($items=5,&$array=[]){
		for($i=0;$i<$items;$i++){
			$dd=[];
			random_multidimensional_array($dd,4,4,true);
			$array[$i]=$dd;
		}
		return $array;
	}
}
if(!function_exists('faker_named')){
	function faker_named($named=[],$items=10,&$array=[]){
		for($i=0;$i<$items;$i++){
			foreach ($named as $item){
				$array[$i][$item]=faker_string();
			}
		}
		return $array;
	}
}

Soluzioni complete per ogni esigenza