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
- HTTP — Controller, Form Request, Resource
- Application — Action / Use Case
- Domain — Entity, Policy, Domain Service
- 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.