Utilizando el paquete fakerPHP
Puede que en algunos proyectos necesitemos rellenar con información nuestra base de datos, para ello podemos utilizar el paquete fakerPHP, este lo podemos conseguir en el repositorio principal de Composer packagist.
Ya en estos tiempos creo que es casi necesario utilizar Composer en nuestro proyecto. Puedes ver sobre composer en este otro post https://blastcoding.com/que-es-composer/
Tengamos en cuenta que también utilizaremos autoload de composer.
¿Que es faker?
La librería fakerPHP nos permite crear datos falsos para su uso, estos datos nos ayudarán para entender como funciona la estructura que hemos creado.
Tenga en cuanta que hemos creado un sistema y no podemos probarlo con datos que son del cliente, estos datos tienen que ser si o si falsos. Tampoco nos sirve rellenar datos a mano para las pruebas, esto llevaría demasiado tiempo.
Lo más inteligente es utilizar algo que lo rellene por nosotros, aquí entra esta librería.
Instalando Faker
Faker es fácil de instalar, creemos un proyecto, e inicializamos composer en él, una vez tengamos composer en nuestro proyecto podemos agregar faker a el de la siguiente manera:
Project Foldercomposer require fakerphp/faker
Probando Faker
En faker hay un ejemplo realmente sencillo, así pues, probaremos faker con este ejemplo primero, cree un index.php dentro de la carpeta del proyecto y agregue estas líneas de codigo:
index.phprequire_once 'vendor/autoload.php'; // use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); // generate data by calling methods echo $faker->name(); // 'Vince Sporer' echo $faker->email(); // 'walter.sophia@hotmail.com' echo $faker->text(); // 'Numquam ut mollitia at consequuntur inventore dolorem.'
Dr. Niko Maggio Sr.frieda39@yahoo.comRem dolores perspiciatis iure sunt. In dolor dolores nostrum totam. Quos dolorum rerum asperiores.
OK, la librería está funcionando, hagamos el script que hicimos para los ejercicios de paginación en PHP que creaba la tabla usuarios y la llenaba con usuarios falsos. Esta vez aremos el siguiente index.php
index.phprequire_once 'vendor/autoload.php'; // use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); $quantity = 150; $create_table= "CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50),
apellido VARCHAR(50),
email VARCHAR(100)
);"; $query = "
INSERT INTO usuarios (nombre, apellido, email) VALUES
"; $values = ""; for ($i=0; $i < $quantity; $i++) { $values .= "(\"".$faker->name()."\",\"".$faker->lastName()."\",\"".$faker->email()."\"),
"; if (($i+1) == $quantity) { $values .= "(\"".$faker->name()."\",\"".$faker->lastName()."\",\"".$faker->email()."\");"; } } echo $create_table.$query.$values;
Vea que tenemos que crear la tabla y dentro del insert utilizaremos faker para que cree los valores dentro de un for y así crear 150 usuarios, aunque veo que hice algo mal en el código porque por lo que veo son 151 usuarios
Faker formatters
Como puede ver en los ejemplos hemos utilizado $faker->name()
, $faker->lastName()
, $faker->email()
, $faker->text()
a estos metodos se le llaman formatters
Faker posee una cantidad increible de formatters estos los puedes chequear en la página official de faker https://fakerphp.github.io/formatters/.
Los formatters pueden ir desde el nombre de un usuario, a un número de tarjeta de crédito, incluso códigos de barra.