Carole Barbier

Le digital qui rend votre site appétissant

Faker : Créer des données fictives facilement

← Retour à l’accueil

Lecture
2 min

Faker est une bibliothèque PHP qui génère de fausses données pour vous.

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 :

getcomposer.org/download/

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 🙂 

				
					<?php

require('vendor/autoload.php');

$pdo = new PDO('mysql:host=localhost;dbname=blogpoo;charset=utf8', 'root', '', [
    PDO::ATTR_ERRMODE => 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 = "<p>" . implode("</p><p>", $faker->paragraphs(5)) . "</p>";
    $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 = "<p>" . implode("</p><p>", $faker->paragraphs(5)) . "</p>";
        $author = $faker->userName;

        $commentQuery->execute(compact('created_at', 'content', 'author', 'article_id'));
    }
}

				
			

Prêt à vous lancer sur le web ?