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
こうすることで、こんな猫いっぱいのデモサイトができあがります。
猫がお嫌いな方は、 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系や、他のプロダクトにも使えます。