ダミーデータ作成ライブラリFakerの紹介

  • 2018年10月22日
  • PHP

 FakerはPHP上で扱うダミーデータ作成ライブラリです。この記事で扱うのはPHPのFakerですがいくつかの他言語でもFakerという名のダミーデータ作成ライブラリは存在します。

JavaScript faker
Python Faker
Ruby Faker
Perl Data-Faker

 歴史的にはRuby,PerlのFakerが元で、この便利なライブラリをPHP、Javascriptで使う人が出てきて、Pythonでも実装されて、といった具合です。Ruby版はPokemon,BackToTheFuture等の特にニッチなフォーマットがいくつかあります。いずれのFakerも多種多様なフォーマットのランダムなデータを生成でき、ダミーデータの作成を簡単に行えます。
 基本的な使い方はリンク先にある通り

<?php
// require the Faker autoloader
require_once '/path/to/Faker/src/autoload.php';
// alternatively, use another PSR-0 compliant autoloader (like the Symfony2 ClassLoader for instance)

// use the factory to create a Faker\Generator instance
$faker = Faker\Factory::create();

// generate data by accessing properties
echo $faker->name;
  // 'Lucy Cechtelar';
echo $faker->address;
  // "426 Jordy Lodge
  // Cartwrightshire, SC 88120-6700"
echo $faker->text;
  // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
  // et sit et mollitia sed.
  // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
  // sit minima sint.

 fakerを呼び出し、任意のフォーマット名のプロパティを呼び出せば、そのフォーマットのランダムな値が返ってきます。

$faker->optional($weight = 0.9, $default = 'abc')->word; // 10% chance of 'abc'

の様に重みとデフォルト値をつけると、一定の割合でデフォルト値が出力されます。こういったデータの分布の操作もいくらかできます。
 配布された状態のままでは出力されるデータのパターン数がwebページのテストに困らない程度しかありません。そのため機械学習等のビッグデータを用いたプログラムのテストには使用できません。
 しかしながらデータセットの改変は容易です。データセットの記述されたファイルはfaker/src/Faker/Provider以下にあります。この部分を参考にProviderクラスのどれかを継承して、データセット変数を任意のデータセットで上書き、

$faker->addProvider(new Faker\Provider\en_US\Person($faker));

の様に新たなProviderを追加することで、オリジナルのデータセットでダミーデータを作成できます。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG