ダミーデータの生成をラクに、FakerPHP を使ってみる

本記事は広告が含まれる場合があります。

いつもブログをご覧くださり、ありがとうございます。


タイトルにもある通り、システム開発や運用保守、お客様向けへのデモンストレーションなど、ダミーデータを生成してシステムにサンプルとして投入したいというニーズはあると思います。
しかし、毎度毎度手間がかかるため、効率化できないか考えてみましたというお話です。

ダミーデータ生成のためのライブラリがある。

そんなの通り、Faker(擬似)データを生成するための、PHPライブラリとのこと。

公式サイト

https://fakerphp.github.io/

前提条件としては、お手持ちの環境で、PHP7.1以上、composer が使えることです。

簡単な使い方

公式サイトにもある通り、composerを使って任意のディレクトリにインストールします。

  • デスクトップなどで、FakerPHP(名前はなんでもOK)を作成します。
  • ターミナルでそのディレクトリに移動します。
  • 以下のコマンドでインストールします。
composer require fakerphp/faker

以上で、FakerPHPを使う準備が整うはずです。

次に、CSVに出力するPHPプログラムを記述します。以下は検証のために使ってみたサンプルコードですので、参考にしてください。
ファイル名はここでは、faker-sample.php としています。

<?php
// faker-sample.php
require_once 'vendor/autoload.php';

$faker = Faker\Factory::create('ja_JP');

$data = [];

for ($i = 0; $i < 10; $i++) {
    $data[] = [
        'name'     => $faker->name,            // 名前
        'zip'      => $faker->postcode,        // 郵便番号
        'pref'     => $faker->prefecture,      // 都道府県
        'city'     => $faker->city,            // 市
        'address'  => $faker->streetAddress,   // 住所
        'phone'    => $faker->phoneNumber,     // 電話番号
        'email'    => $faker->safeEmail,       // メール
        'birthday' => $faker->dateTimeBetween('-80 years', '-20years')
            ->format('Y-m-d'), // 生年月日 (20〜80年前の日付)
        'score'    => $faker->numberBetween(1, 100), // 1〜100の数字
        'text'     => $faker->realText(20),    // ダミーテキスト 20文字
    ];
}

// CSV出力する
$fp = fopen('faker-sample.csv', 'w');

foreach ($data as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

最後にPHPを実行します。

php faker-sample.php

同じディレクトリにCSVファイルが出力されていると思います。

GitHubにもソースコードを置いています。
https://github.com/YukinobuAsakawa/FakerPHP-Sample

参考情報

お問い合わせはこちらから

南大阪を中心に活動しているシステムエンジニアです。これまでの経験から、ビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することやご相談内容についてお聞かせください。初回のご相談はオンラインで無償対応いたします。

連絡先:050-5050-2860