多くのWebサイトやアプリケーションの開発には、実際の生活の仕組みをシミュレートするためにさまざまな種類のデータが必要です。プロジェクトのテストおよび開発段階では、偽のデータを使用してデータベース、UI要素などを埋めることがよくあります。
プロジェクトの偽のデータを生成するために独自のコードを書くことは非常に面倒です。このチュートリアルでは、PHPの実績のあるFakerライブラリを使用して偽のデータを生成する方法を学びます。
続行する前に、いくつかのポイントを明確にしたいと思います。
元の偽のライブラリはfzaninotto/fakerでした。ただし、2020年12月11日に所有者によってアーカイブされました。現在、FakerPhp/Fakerと呼ばれる図書館支部は、開発作業を継続しています。プロジェクトで使用する必要があるものを決定しようとしている場合は、FakerPhpを選択してください。
FakerPhpのFakerでは、PHPバージョンが7.4以上であることを要求しています。これは、元のライブラリによってサポートされているphp> = 5.3.3とは対照的です。これから、このチュートリアルのFakerへのすべての参照は、新しいブランチバージョンを参照します。
次のコマンドを実行して、Composerを使用してFakerをインストールできます。
これにより、
<code>composer require fakerphp/faker</code>
ファイルが作成され、ベンダーディレクトリに必要なすべてのパッケージがインストールされます。 インストールが完了したら、これらの2つの行をコードに追加することで、プロジェクトのライブラリの使用を開始できます。
最初の行には、プロジェクトにFaker Libraryが含まれています。
2行目では、ジェネレーターインスタンスの静的工場クラスへの呼び出しを使用して、Fakerジェネレーターを初期化し、さまざまな偽データを生成するために使用できます。require 'vendor/autoload.php'; $faker = Faker\Factory::create();
偽名、住所、電話番号を生成します
プロバイダーオブジェクトは、ランダムデータを生成するために使用されます。デフォルトのプロバイダーにバンドルしたジェネレーターインスタンスへの呼び出し。
名前属性を呼び出すだけで、Fakerで偽の名前を生成できます。各呼び出しは、異なるランダム名を出力します。例は次のとおりです。
$faker = new Faker\Generator(); $faker->addProvider(new Faker\Provider\en_US\Person($faker)); $faker->addProvider(new Faker\Provider\en_US\Address($faker)); $faker->addProvider(new Faker\Provider\en_US\PhoneNumber($faker)); $faker->addProvider(new Faker\Provider\en_US\Company($faker)); $faker->addProvider(new Faker\Provider\Lorem($faker)); $faker->addProvider(new Faker\Provider\Internet($faker));
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); $fake_names = []; for($i = 0; $i < 10; $i++){ $fake_names[] = $faker->name; } /* Array ( [0] => Gabe Mann Jr. [1] => Lazaro Leuschke [2] => Angie Welch Sr. [3] => Prof. Kirk Krajcik III [4] => Sadye Mosciski [5] => Danyka Braun [6] => Jacinthe Dickinson [7] => Clifton Beahan [8] => Dr. Jan Casper MD [9] => Adelia Schimmel ) */ print_r($fake_names);
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); $first_names = []; for($i = 0; $i < 10; $i++){ $first_names[] = $faker->firstName; } // Outputs: Dylan, Ariane, Doris, Reilly, Jamar, Merl, Maverick, Frederik, Lucius, Madyson echo implode(', ', $first_names);
特定の地域をターゲットにしたアプリケーションを開発しているとします。この場合、ターゲット市場を反映するデータを使用することができます。たとえば、ナイジェリア人のための申請は、ナイジェリアの名前を所有することから恩恵を受けます。同様に、インドのユーザー向けのアプリケーションは、インドの住所を使用したい場合があります。
require 'vendor/autoload.php'; $faker = Faker\Factory::create(); /* Phone Number: +1-724-494-3101 Phone Number (Extension): (475) 499-3999 x9969 Phone Number (Toll Free): 855.618.0155 Phone Number: 1-660-934-8668 Phone Number (Extension): 351-533-3301 x1602 Phone Number (Toll Free): 844-530-4671 */ for($i = 0; $i < 2; $i++){ echo "Phone Number: ".$faker->phoneNumber()."\n"; echo "Phone Number (Extension): ".$faker->phoneNumberWithExtension()."\n"; echo "Phone Number (Toll Free): ".$faker->tollFreePhoneNumber()."\n\n"; }
ロケール固有のデータを生成するトリックは、ロケールをランダムナンバー()メソッドに渡すことです。デフォルトでは、指定された数字の数字でランダム数を生成します。 UNIXTIME()メソッドを渡して、UNIXタイムスタンプ値を0から現在の時間、または指定された時間の間に取得できます。ランダムDateTime()メソッドも生成できます。繰り返しますが、デフォルトの最大値は現在の日付と時刻です。
DateTimead()メソッドを生成する場合、1月1日、1、指定された最大値の日付を返します。
Time()メソッドを使用して、特定の形式でランダムな日付と時間を生成できます。
dateTimeBetWeen()メソッドを取得する必要があると仮定します。
<code>composer require fakerphp/faker</code>
require 'vendor/autoload.php'; $faker = Faker\Factory::create();
以上がFakerを使用して、自動テスト用のフィラーデータを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。