Faker : Créer des données fictives facilement
Accueil » Créer des données fictives en PHP, le top pour tester !
Lecture
2 min
Accès direct aux chapitres pour les plus pressés 😉
Etape 1 : Télécharger Composer
Téléchargement et installation de Composer
Au préalable, vous devez avoir installé PHP.
Suivez les explication du site Composer en suivant ce lien :
Personnellement, j’ai utilisé l’installation directement en ligne de commande depuis le dossier de mon projet avec le code :
Vérifier que le fichier composer.phar et le dossier /vendor soient bien installés.
Etape 2 : installer faker
Instructions d'installation et d'utilisation de FAKER
Etape 3 : exemple d'utilisation
Cet exemple a été pris sur le site de Lior Chamla github.com/liorchamla/cours-php-poo.
Il concerne un projet d’apprentissage de la Poo PHP.
Pour exécuter faker, il faut se rendre dans le navigateur (avec serveur lancé !) sur la page du fichier nouvellement créée, notre notre exemple, c’était /seed.php
Et voilà ! Toutes vos fake datas sont en base de données 🙂
PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
$articleQuery = $pdo->prepare("INSERT INTO articles SET title = :title, slug = :slug, created_at = :created_at, introduction = :introduction, content = :content");
$commentQuery = $pdo->prepare("INSERT INTO comments SET article_id = :article_id, author = :author, created_at = :created_at, content = :content");
$userQuery = $pdo->prepare("INSERT INTO users SET first_name = :first_name, last_name = :last_name, email = :email");
$pdo->query('DELETE FROM articles; DELETE FROM comments; DELETE FROM users;');
$faker = Faker\Factory::create('fr_FR');
for ($u = 0; $u < 30; $u++) {
$first_name = $faker->firstName();
$last_name = $faker->lastName();
$email = $faker->email();
$userQuery->execute(compact('first_name', 'last_name', 'email'));
}
for ($a = 0; $a < 20; $a++) {
$title = $faker->catchPhrase;
$slug = $faker->slug;
$created_at = $faker->dateTimeBetween('-6 months')->format('Y-m-d H:i:s');
$introduction = $faker->paragraph();
$content = "" . implode("
", $faker->paragraphs(5)) . "
";
$articleQuery->execute(compact('title', 'slug', 'created_at', 'introduction', 'content'));
$article_id = $pdo->lastInsertId();
$days = "-" . (new DateTime())->diff(new DateTime($created_at))->days . " days";
$commentsCount = mt_rand(2, 8);
for ($c = 0; $c < $commentsCount; $c++) {
$created_at = $faker->dateTimeBetween($days)->format('Y-m-d H:i:s');
$content = "" . implode("
", $faker->paragraphs(5)) . "
";
$author = $faker->userName;
$commentQuery->execute(compact('created_at', 'content', 'author', 'article_id'));
}
}