WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Fakerで簡易シーディング

Fakerで簡易シーディング

このエントリーをはてなブックマークに追加

Generatorsでシーダーを作成すると、Fakerというパッケージを使ってシーディングを行う為の記述があります。今日は、そのFakerについて調べてみたいと思います。

Fakerの導入

まず、Fakerをインストールするために、composer.jsonにFakerを追加記述します。

"require-dev":{
 "way/generators":"2.*",
 "fzaninotto/faker": "1.3.*@dev"
 },
  • 3行目:generatorsの後に、fakerを追加します。

コマンドプロンプトでcomposerをアップデートします。

composer update

これで、Fakerは、導入されました。Fakerは、サービスプロバイダーを登録する必要は、ありません。

Fakerの使用方法

Fakerは、Generatorsで生成したシーダー(app/database/seedsフォルダ内)の配列を下記のように記述します。

‘フィールド名’=>$faker->’プロパティ名’,

それでは、前回作成した、app/database/seeds/PostsTableSeederを下記のように修正します。

<?php
// Composer: "fzaninotto/faker": "v1.3.0"
 use Faker\Factory as Faker;
class PostsTableSeeder extends Seeder {
public function run()
 {
 $faker = Faker::create();
foreach(range(1, 10) as $index)
 {
 Post::create([
 'title'=>$faker->word,
 'body'=>$faker->text
 ]);
 }
 }
}
  • 11-12行:この2行を追加しました。-
  • フィールド名=>$fakes->プロパティ名で指定します。

コマンドプロンプトでシーダーを実行します。

cd c:\xampp\htdocs\laravel
 php artisan db:seed --class="PostsTableSeeder"

phpMyAdminで確認してみると、下記のようにtitleとbody部分にダミーデータが自動的に生成されています。

2014-05-29 9-57-39

Fakerのプロパティ一覧

Fakerのプロパティは、下記の通りです。

string

  • name
  • firstName
  • lastName
  • citySuffix
  • streetSuffix
  • buildingNumber
  • city
  • streetName
  • streetAddress
  • postcode
  • address
  • country
  • latitude
  • longitude
  • phoneNumber
  • company
  • companySuffix
  • creditCardType
  • creditCardNumber
  • creditCardExpirationDate
  • creditCardExpirationDateString
  • creditCardDetails
  • bankAccountNumber
  • word
  • words
  • sentence
  • sentences
  • paragraph
  • paragraphs
  • text
  • email
  • safeEmail
  • freeEmail
  • companyEmail
  • freeEmailDomain
  • safeEmailDomain
  • userName
  • domainName
  • domainWord
  • tld
  • url
  • ipv4
  • ipv6
  • dateTime
  • dateTimeAD
  • iso8601
  • dateTimeThisCentury
  • dateTimeThisDecade
  • dateTimeThisYear
  • dateTimeThisMonth
  • amPm
  • monthName
  • date
  • time
  • dateTimeBetween
  • md5
  • sha1
  • sha256
  • locale
  • countryCode
  • languageCode
  • randomLetter
  • userAgent
  • chrome
  • firefox
  • safari
  • opera
  • internetExplorer
  • uuid
  • mimeType
  • fileExtension
  • hexcolor
  • safeHexColor
  • rgbcolor
  • rgbColorAsArray
  • rgbCssColor
  • safeColorName
  • colorName

int

  • unixTime
  • dayOfWeek
  • month
  • year
  • century
  • timezone
  • randomDigit
  • randomDigitNotNull

boolean

  • boolean

mixed

  • randomKey

float

  • randomFloat

上記は、全て試したわけでは、ありませんが、いろんな種類のプロパティ(ダミーデータ)がありますね。

只単にダミーデータを作成するのに、こんなに種類が必要かどうかはわかりませんが、興味のある方は試してみてください。

Fakerのメソッド一覧

  • randomNumber
  • randomFloat
  • randomElement
  • numerify
  • lexify
  • toLowerbothify
  • toUpper
  • optional
  • unique

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です