The absolute beginner's guide to Domain Driven Design with Symfony
summary
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
chapters (22)
- 0:00Introduction
- 4:26Overview
- 5:38Whats the point
- 7:45The domain
- 13:52Entities
- 15:13Aggregates
- 16:14Aggregate Route
- 17:42Invariant
- 18:19Domain Services and Application Services
- 19:12Domain Driven Architecture
- 22:12Creating a new project
- 24:12Building the aggregate route
- 28:25Creating a domain service
- 31:15Getting information into the domain
- 33:31Using application services
- 36:38Creating a form
- 37:40Fetching information
- 39:25Consultation context
- 41:07User management
- 42:55Summary
- 49:33Bounded contexts
- 50:58Doctrine
related talks
54mFrom domain to code: a practical approach
49mForms in Symfony 3
39mSimply About the Complex — Domain Driven Design
02h 09mSymfony Forms in Detail
49mKicking off with Zend Expressive and Doctrine ORM
50mStrategic Domain Driven Design in CakePHP How to Get Organized and Get Started
42mDrupal8 for Symfony developers
02h 10mLet's play a game: No extends. Advanced OOP with Symfony 3
