~/talk

From domain to code: a practical approach

Talkat phpday 2023 · 2023-05-18..05-19· [php]
slides:none on file

Shows how a domain model actually becomes running code: implement CQRS and command/query buses with Symfony Messenger, keep domain and application layers free of DB concerns, and put Doctrine plumbing in infrastructure. Recommends aggregates with cascades, Doctrine deferred explicit change tracking, UIDs generated in infra and used as primary keys, custom Doctrine types instead of embeddables, persisters that flush and dispatch events, and enforce throws PHP docs enforced by static analysis (Psalm/PHPStan).

AI-written summary · about

  1. 0:00Intro
  2. 0:43Domain D Design
  3. 2:01Domain Definitions
  4. 4:43Domain Driven Design
  5. 7:01CQRS
  6. 8:46Layers
  7. 9:47Domain
  8. 14:02Abstractions
  9. 16:23Implementation Focus
  10. 18:21UUIDs
  11. 21:51Cascades
  12. 22:51Chain tracking policy
  13. 24:40Custom types
  14. 26:04Repository patterns
  15. 27:38Buses
  16. 29:29Dispatch
  17. 30:07The end result
  18. 31:30Dispatching events
  19. 33:40Best practice for events
  20. 34:24Error handling
  21. 37:06Treat
  22. 38:19Testing
  23. 39:54Static analysis
  24. 44:18Wrap up
  25. 46:24Questions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.