Utiliser Faker pour générer des données de test dans Laravel

Note: Cet exemple a été réalisé avec Laravel 5.0.

Faker est une librairie PHP qui permet de générer du faux texte. Avec Faker, vous pouvez générer différents types de données: des noms, des numéros de téléphone, des mots de passe, etc. Vous pouvez même générer des prénoms de filles ou de garçons. C’est vous dire la puissance de cette librairie.

Dans cet exemple, nous allons créer des utilisateurs dont les valeurs des différents champs sont générés avec Faker.

Pour installer Faker, exécutez en ligne de commande (en vous plaçant à la racine de votre projet Laravel):

composer require fzaninotto/Faker --dev

Supposons que notre table users contient les champs nom, prenoms, email, password, date_naissance et telephone.

Dans le dossier database/seeds, créez un fichier UserTableSeeder.php:

1 $faker = Faker\Factory::create(‘fr_FR’)
Initialisation de Faker en spécifiant la langue. Ici, les données retournées par Faker seront en français.

2 for ($i = 0; $i < 10; $i++)
La boucle permet de créer plusieurs utilisateurs, mais avec des données différentes.

3 $faker->unique()->email
unique() permet de s’assurer que les emails générés seront uniques.

4 bcrypt est la fonction utilisée par Laravel pour chiffrer les mots de passe. Vous devez toujours chiffrer les mots de passe avec cette fonction avant de les enregistrer dans la base de données. Vous pouvez aussi utiliser Hash::make().
Pour pouvoir me connecter facilement en utilisant un de ces comptes utilisateurs, j’ai spécifié un mot de passe, facile à retenir, pour tous les utilisateurs. Sinon, Faker a aussi une fonction pour générer des mots de passe. On aurait pu utiliser $faker->password.

Une fois notre code prêt, on peut maintenant l’exécuter.

En ligne de commande, exécutez d’abord:

composer dump-autoload

Ensuite:

php artisan db:seed --class=UserTableSeeder

Et voilà! Vous avez maintenant 10 utilisateurs avec des données différentes enregistrées dans la base de données. C’est magique!

Faites un tour sur https://github.com/fzaninotto/Faker pour découvrir les autres merveilles de Faker.