A

Clean Architecture di Laravel: Kapan dan Bagaimana

Penerapan clean architecture pada Laravel tanpa over-engineering — service, action, repository, dan boundary yang masuk akal.

1 menit bacaAhmad Apandi

Masalah yang ingin diselesaikan

Controller gemuk, business logic tersebar, dan testing sulit. Clean Architecture membantu memisahkan domain dari framework.

Lapisan yang saya pakai

  1. HTTP — Controller, Form Request, Resource
  2. Application — Action / Use Case
  3. Domain — Entity, Policy, Domain Service
  4. Infrastructure — Eloquent, Redis, External API

Contoh Action

final class CreateInvoiceAction
{
    public function __construct(
        private InvoiceRepository $invoices,
        private EventDispatcher $events,
    ) {}

    public function handle(CreateInvoiceData $data): Invoice
    {
        $invoice = $this->invoices->create($data);
        $this->events->dispatch(new InvoiceCreated($invoice));
        return $invoice;
    }
}

Kapan tidak perlu

Untuk CRUD sederhana atau prototype, Action + Form Request sudah cukup. Jangan paksa hexagonal di setiap fitur.

Penutup

Arsitektur yang baik adalah yang tim Anda pahami dan mengurangi bug di produksi.

Artikel terkait