Menggunakan Seeder dan Faker pada CodeIgniter 4
Penjelasan mengenai data migration dapat dibaca pada tulisan Dasar-dasar Database Migration CodeIgniter 4.
Setelah membuat tabel-tabel dalam database, pada tahap pengembangan biasanya kita belum memiliki data apa-apa seperti data user, data produk, data layanan, dan sebagainya. Untuk itu akan sangat membantu apabila kita mempunyai data yang menyerupai atribut mirip seperti ketika aplikasi dijalankan. Misalnya nama, email, dan password. Hadirlah seeder yang digunakan untuk mengisi tabel dengan data yang kita buat sebelumnya untuk memudahkan pengembangan dan testing aplikasi kita.
Apa itu Faker
Sebelum membahas lebih lanjut mengenai seeder, kita berkenalan dulu secara singkat apa itu Faker.
Untuk installasinya menggunakan composer :
composer require fzaninotto/faker
Faker adalah sebuah library yang sesuai namanya bertugas untuk membuat data Fake (palsu). Penggunaan faker di Codeigniter 4 cukup mudah. Misal kita ingin membuat username random:
$faker = Faker\Factory::create();
echo $faker->userName; // 'hcummerata';
Selain userName, lebih lengkapnya bisa dilihat pada laman github faker
Membuat data dengan seeder
Setelah tau cara menggunakan faker, berikutnya kita masukan data ke dalam database dengan menggunakan seeder. CI4 menyediakan fitur ini yang bisa kalian lihat pada dokumentasinya Database Seeding.
Pastikan terlebih dahulu tabel user sudah kalian buat di database
Mari kita membuat skrip seeder pada direktori app\Database\Seeds
dengan membuat file baru bernama UserSeeder.php
.
Buka file UserSeeder.php
, dan buat class UserSeeder pada file tersebut.
<?php namespace App\Database\Seeds;class UserSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
$faker = \Faker\Factory::create();
$data = [
'username' => $faker->userName,
'email' => $faker->email,
'password' => $faker->password
];
$this->db->table('user')->insert($data);
}
}
Setelah seeder di definisikan, buka terminal projek dan jalankan php spark db:seed UserSeeder
untuk memasukkan ke database.
Maka data akan dibuat seperti gambar dibawah
Untuk membuat data lebih banyak misalnya 100 baris tinggal tambahkan perulangan saja
<?php namespace App\Database\Seeds;class UserSeeder extends \CodeIgniter\Database\Seeder
{
public function run()
{
for($i=0; $i<100; $i++) {
$faker = \Faker\Factory::create();
$data = [
'username' => $faker->userName,
'email' => $faker->email,
'password' => $faker->password
];
$this->db->table('user')->insert($data);
}
}
}
Sekian saja pembahasan mengenai seeder dan faker pada CI4. Semoga bermanfaat.