logo

Should you use DTOs in Laravel?

What do we do?

Joel Clermont
Joel Clermont
2025-10-06

DTOs (Data Transfer Objects) aren't mentioned anywhere in the Laravel docs, but some devs use them heavily in their applications, whereas other devs never use them at all.

In the latest episode of the No Compromises podcast, we weigh the pros and cons of DTOs in everyday Laravel apps, comparing them to form requests, PHPDoc-typed arrays, and service-layer boundaries. We also share one area where we feel DTOs truly shine.

The takeaway: keep DTOs in the toolbox, but reach for them intentionally, not by habit.

  • 00:00 Framing DTOs in a stricter PHP world
  • 01:15 Our current practice: hybrids, few true DTOs
  • 02:45 Form requests, safe(), and typed inputs
  • 03:45 Reuse across API and form layers rarely aligns
  • 04:30 Where DTOs shine: normalizing multiple APIs
  • 05:45 Service boundaries: wrapping vendor objects (e.g., Stripe)
  • 06:15 PHPDoc-typed arrays vs DTO overhead
  • 06:45 Conventions, Larastan levels, and avoiding ceremony
  • 07:45 Treat DTOs as a tool, not a rule
  • 09:15 Silly bit

Listen Now (10 min)

And after listening, don't forget to subscribe to the podcast, so you don't miss future episodes.

Here to help,

Joel

P.S. Would you like an expert review of your project architecture? Book a call to see how we can help.

Toss a coin in the jar if you found this helpful.
Want a tip like this in your inbox every weekday? Sign up below 👇🏼
email
No spam. Only real-world advice you can use.