本記事は広告が含まれる場合があります。
いつもブログをご覧くださり、ありがとうございます。
タイトルにもある通り、システム開発や運用保守、お客様向けへのデモンストレーションなど、ダミーデータを生成してシステムにサンプルとして投入したいというニーズはあると思います。
しかし、毎度毎度手間がかかるため、効率化できないか考えてみましたというお話です。
目次
ダミーデータ生成のためのライブラリがある。
そんなの通り、Faker(擬似)データを生成するための、PHPライブラリとのこと。
公式サイト
前提条件としては、お手持ちの環境で、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
参考情報
- https://qiita.com/zaburo/items/4487b23543ce88ce7f0c
- https://jyu2log.com/php-faker
- https://www.tam-tam.co.jp/tipsnote/program/post10791.html
お問い合わせはこちらから
南大阪を中心に活動しているシステムエンジニアです。これまでの経験から、ビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することやご相談内容についてお聞かせください。初回のご相談はオンラインで無償対応いたします。
連絡先:050-5050-2860
連絡先:050-5050-2860