~/talk

The absolute beginner's guide to Domain Driven Design with Symfony

Talkat sfday 2020 · on Friday, 2020-11-27· [php]
github:nealio82
slides:none on file

Demo builds a vet appointment system with two bounded contexts (scheduling and consultation), concrete code using Symfony 5, Symfony Messenger commands, migrations and doctrine dbal for persistence, Ramsey UUID ids, in‑memory repositories for tests and DTOs for reads. It shows how DDD entities differ from Doctrine entities, uses named constructors and aggregate roots to enforce invariants (15‑minute slots, no overlaps), wires interfaces via the container, and commits working examples so the design and tests actually run.

AI-written summary · about

  1. 0:00Introduction
  2. 4:26Overview
  3. 5:38Whats the point
  4. 7:45The domain
  5. 13:52Entities
  6. 15:13Aggregates
  7. 16:14Aggregate Route
  8. 17:42Invariant
  9. 18:19Domain Services and Application Services
  10. 19:12Domain Driven Architecture
  11. 22:12Creating a new project
  12. 24:12Building the aggregate route
  13. 28:25Creating a domain service
  14. 31:15Getting information into the domain
  15. 33:31Using application services
  16. 36:38Creating a form
  17. 37:40Fetching information
  18. 39:25Consultation context
  19. 41:07User management
  20. 42:55Summary
  21. 49:33Bounded contexts
  22. 50:58Doctrine
~/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.