Doctrine Fixtures
Penjelasan
Fixtures adalah versi Symfony/Doctrine dari seeder — class yang mengisi data awal ke database, dibuat lewat php bin/console make:fixtures (butuh paket doctrine/doctrine-fixtures-bundle), dijalankan lewat php bin/console doctrine:fixtures:load.
Contoh Konsep
<?php
namespace App\DataFixtures;
use App\Entity\Produk;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
class ProdukFixtures extends Fixture
{
public function load(ObjectManager $manager): void
{
$produk1 = new Produk();
$produk1->setNama('Kaos CompileDaily');
$manager->persist($produk1);
$manager->flush(); // WAJIB dipanggil supaya data benar-benar tersimpan
}
}
// Jalankan lewat terminal:
// php bin/console doctrine:fixtures:load
Praktikum
Buat ArtikelFixtures yang membuat minimal 3 record Artikel lewat new Artikel() + setJudul()/setIsi() + $manager->persist(), diakhiri satu $manager->flush() di luar loop. Tulis juga perintah console untuk menjalankan fixture itu sebagai komentar.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
$manager->persist() cuma MENANDAI entity untuk disimpan — data BELUM benar-benar masuk ke database sampai $manager->flush() dipanggil. Untuk banyak record, lebih efisien memanggil persist() berkali-kali di dalam loop tapi flush() SEKALI SAJA di akhir, bukan di dalam loop.