Rumah >pembangunan bahagian belakang >tutorial php >Menggunakan Faker untuk menjana data pengisi untuk ujian automatik
Menulis kod anda sendiri untuk menghasilkan data palsu untuk projek anda boleh menjadi sangat rumit. Dalam tutorial ini, anda akan belajar bagaimana untuk menghasilkan data palsu menggunakan perpustakaan Faker yang terbukti di PHP.
pemula
Perpustakaan palsu asal adalah fzaninotto/faker. Walau bagaimanapun, ia diarkibkan oleh pemilik pada 11 Disember 2020. Sekarang, cawangan perpustakaan yang dipanggil Fakerphp/Faker meneruskan kerja pembangunannya. Jika anda cuba memutuskan mana yang harus anda gunakan dalam projek anda, pilih FakerPhp.
Faker dari Fakerphp memerlukan versi PHP anda lebih besar daripada atau sama dengan 7.4. Ini berbeza dengan php> = 5.3.3 yang disokong oleh perpustakaan asal.
dari sekarang, semua rujukan kepada Faker dalam tutorial ini akan merujuk kepada versi cawangan yang lebih baru.
anda boleh memasang Faker menggunakan komposer dengan menjalankan arahan berikut:
<code>composer require fakerphp/faker</code>Ini akan membuat fail composer.json
untuk anda dan pasang semua pakej yang diperlukan dalam direktori vendor . Selepas pemasangan selesai, anda boleh mula menggunakan perpustakaan dalam projek anda dengan menambahkan kedua -dua baris ini ke kod anda:
Baris pertama termasuk perpustakaan Faker dalam projek kami.
<code class="language-php">require 'vendor/autoload.php'; $faker = Faker\Factory::create();</code>
Di baris kedua, kita memulakan penjana Faker menggunakan panggilan ke kelas kilang statik contoh penjana, yang boleh kita gunakan untuk menghasilkan pelbagai data palsu.
menghasilkan nama palsu, alamat dan nombor telefon
Penyedia lalai menjana nama, alamat, nombor telefon, butiran syarikat, dan lain -lain berdasarkan Amerika Syarikat. Panggilan ini menambah penyedia di latar belakang:
Anda boleh menjana nama palsu di Faker dengan hanya memanggil atribut nama. Setiap panggilan akan mengeluarkan nama rawak yang berbeza. Berikut adalah contoh:
<code class="language-php">$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));</code>
Jika anda tidak berminat dengan nama penuh anda, anda juga boleh meminta hanya nama pertama atau terakhir anda.
<code class="language-php">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);</code>
Katakan anda hanya memerlukan nama lelaki atau perempuan. Dalam kes ini, anda hanya boleh menghubungi kaedah firstNamemale () dan alamat () atau akses phonenumber (), phonenumberWithextension ().
<code class="language-php">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);</code>
menghasilkan butiran palsu khusus untuk tetapan locale
<code class="language-php">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"; }</code>
Trik untuk menjana data khusus locale adalah untuk lulus lokasi ke kaedah RandomNumber (), yang secara lalai menghasilkan nombor rawak dengan bilangan digit yang ditentukan. Anda boleh lulus kaedah UnixTime () untuk mendapatkan nilai timestamp Unix antara 0 dan masa semasa atau masa yang ditentukan. Kaedah rawak () rawak juga boleh dijana. Sekali lagi, maksimum lalai ialah tarikh dan masa semasa.
Jika anda ingin menjana kaedah DateTimead (), ia mengembalikan tarikh antara 1 Januari, 1, dan nilai maksimum yang diberikan.
Anda boleh menggunakan kaedah masa () untuk menjana tarikh dan masa rawak dalam format tertentu.
Katakan anda perlu mendapatkan kaedah DateTimebetween ().
<code>composer require fakerphp/faker</code>
Sekarang kita tahu cara menggunakan Faker untuk menghasilkan pelbagai jenis nilai angka, kita boleh menggabungkan hasilnya untuk membuat dokumen XML atau HTML, mengisi pangkalan data dengan nilai angka, dan sebagainya. Sebagai contoh, pertimbangkan kod berikut, yang menghasilkan fail konfigurasi rawak untuk orang yang berbeza.
<code class="language-php">require 'vendor/autoload.php'; $faker = Faker\Factory::create();</code>
Selepas menghasilkan nilai rawak, anda boleh melakukan apa sahaja kepada mereka. Dalam kes ini, kami mengeluarkannya di kelas asas untuk menghasilkan jenis data yang kami mahukan. Jika anda mencari perpustakaan yang menjana data rawak, Faker pasti patut dicuba.
Atas ialah kandungan terperinci Menggunakan Faker untuk menjana data pengisi untuk ujian automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!