LoginSignup
5
3

More than 5 years have passed since last update.

Faker で猫いっぱいのデモサイトを作ろう

Posted at

EC-CUBE3 でテスト用のデータを生成する というエントリを書きましたが、 EC-CUBE 3.0.13 より、画像のデータ生成にも対応しました。

下準備

EC-CUBE3 をインストールし、 composer install を実行してください.
(Composer がインストールされてない方はインストールしておいてください)

cd path/to/ec-cube
composer install

パッケージ版の場合は、 PHPUnit など必要なライブラリが含まれてないためで、 github から clone してきた場合は不要です。

使用方法

ファイルをダウンロードします

curl -Ss https://raw.githubusercontent.com/nanasess/ec-cube/fixture-generator/tests/Eccube/Tests/Fixture/GeneratorTest.php -o tests/Eccube/Tests/Fixture/GeneratorTest.php

PHPUnit を実行します

./vendor/bin/phpunit tests/Eccube/Tests/Fixture/GeneratorTest.php

こうすることで、こんな猫いっぱいのデモサイトができあがります。

screen.png

猫がお嫌いな方は、 tests/Eccube/Tests/Fixture/GeneratorTest.php の 96行目付近、以下のコードを修正してください。

// 第3引数の cats を他の単語に変更することで、別の画像を指定可能
// abstract, animals, business, cats, city, food, night, life, fashion, people, nature, sports, technics, transport が使えます。
$this->Products[] = $this->app['eccube.fixture.generator']->createProduct(null, 3, 'cats');

fzaninotto/Faker について

このデータ生成には、 fzaninotto/Faker というライブラリを使用しています。

会員のダミーデータを生成する場合などにも使用しており、人名や、住所は日本語にも対応しています。

use Faker\Factory as Faker;

$faker = Faker\Factory::create('ja_JP'); // ロケールに日本語を指定

echo $faker->name;
// => '石田 和也';

echo $faker->kanaName;
// => 'イシダ カズヤ'

echo $faker->firstKanaNameMale;
// => "ヒデキ"

// html/upload/save_image 以下に 縦横480〜640px の猫の画像をランダムファイル名で生成
// 画像生成は http://lorempixel.com というサービスを使用しています。
$image = $faker->image(
    __DIR__.'/../../../../html/upload/save_image',
    $faker->numberBetween(480, 640),
    $faker->numberBetween(480, 640),
    $image_type, false);

// composer require fzaninotto/Faker dev-master とすれば、Faker::realText() で日本語の長文も扱えます。
echo $faker->realText($faker->numberBetween(20, 100));
// => カムパネルラが手をあげました。それから四、五人手をあげました。ジョバンニも手をあげようとして、急
// XXX 実際は単語が無作為に組み合わされるので、こんな綺麗な文章にはなりません...

詳しくは fzaninotto/Faker の README をご覧ください。
Faker 自体は、 PHP5.3.3 以降で使用可能ですので、 EC-CUBE2系や、他のプロダクトにも使えます。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3