Laravel: Naik Level - Merangkum Logika Bisnis Aplikasi dengan Actions

Halo, Rama disini! πŸ‘‹ Di artikel sebelumnya dalam seri Laravel yang Lebih Terstruktur dan Scalable, kita udah ngebahas tentang Data Transfer Objects (DTO) untuk mengelola data dengan lebih rapi dan aman. Sekarang, waktunya kita naik level dengan memahami Actions, cara jitu untuk merangkum logika bisnis aplikasi Laravel kamu! πŸ’ͺ

Apa Itu Actions? πŸ€”

Bayangin Actions kayak "tukang" di aplikasi kamu yang punya satu tugas spesifik. Misalnya, di aplikasi perpustakaan, kamu bisa punya PinjamBukuAction, KembalikanBukuAction, atau TambahBukuAction. Setiap Action punya satu tugas utama yang harus diselesaikan.

Blog banner: Merangkum Logika Bisnis Aplikasi dengan Actions

Kenapa Pakai Actions? πŸ’―

  • Kode Lebih Rapi: Setiap Action fokus pada satu tugas, jadi kode kamu jadi lebih mudah dibaca, dipahami, dan di-maintain.
  • Organisasi Pro: Nggabungin kode berdasarkan fungsinya, bukan berdasarkan tipe kodenya. Lebih terstruktur dan profesional!
  • Testing Jadi Gampang: Actions itu simpel dan nggak bergantung sama yang lain, jadi gampang banget diuji.
  • Reusable: Satu Action bisa dipake di banyak tempat di aplikasi kamu. Hemat waktu dan energi!

Contoh Action di Laravel πŸ’»

Nih, contoh PinjamBukuAction yang simpel:

class PinjamBukuAction
{
    public function execute(PinjamBukuData $data): Peminjaman
    {
        // Validasi data peminjaman
        // ...

        // Buat objek Peminjaman baru
        $peminjaman = new Peminjaman([
            'anggota_id' => $data->anggotaId,
            'buku_id' => $data->bukuId,
            'tanggal_pinjam' => now(),
            'tanggal_kembali' => now()->addDays(14), // Contoh: Batas peminjaman 14 hari
        ]);

        // Simpan objek Peminjaman ke database
        $peminjaman->save();

        // Update status buku menjadi "dipinjam"
        // ...

        // Kirim notifikasi (opsional)
        // ...

        return $peminjaman;
    }
}

Di sini, PinjamBukuAction nerima data dari DTO PinjamBukuData, validasi data, bikin objek Peminjaman, simpan ke database, update status buku, dan bisa juga kirim notifikasi. Semuanya dalam satu tempat!

Kesimpulan

Actions itu powerful banget buat ngatur logika bisnis di aplikasi Laravel kamu. Kodenya jadi lebih bersih, gampang diuji, dan mudah dikelola. Di artikel selanjutnya, kita akan bahas cara bikin model Eloquent Laravel kamu lebih ramping dengan mindahin query dan logika koleksi ke kelas khusus. Stay tuned! πŸ˜‰