Zum Hauptinhalt springen

Domain-Driven Design mit Symfony

Ein umfassender Leitfaden für Domain-Driven Design in Symfony

Erfahre, wie du DDD-Prinzipien in deinen Symfony-Anwendungen umsetzen kannst.

Vorwort

Wem hilft dieses Tutorial?

  • Symfony-Entwickler:innen, die ihre Projekte besser strukturieren wollen
  • Teams, die gemeinsam an klaren Modellen arbeiten möchten
  • Menschen, die DDD kennen – aber wissen wollen, wie man’s konkret umsetzt

Was solltest du mitbringen?

  • Kenntnisse in Symfony (Controller, Services, Routing)
  • Ein bisschen Neugier auf neue Architekturideen
  • Grundkenntnisse in Domain-Driven Design

Überblick

Domain-Driven Design (DDD) ist ein Ansatz zur Softwareentwicklung, der sich auf die Kerndomäne und die Domänenlogik konzentriert. DDD betont die Zusammenarbeit zwischen technischen und domänenspezifischen Experten, um ein gemeinsames Verständnis des Problembereichs zu entwickeln und dieses in Software umzusetzen.

Hinweis

Dies ist kein Tutorial, das dir die Konzepte des DDD beibringen möchte - dazu fehlt mir schlicht die Zeit und das würde den Rahmen sprengen. Es geht hier primär darum, wie DDD in einem Symfony-Projekt umgesetzt werden kann.

Inhalt

Hauptkonzepte des DDD ganz kurz erklärt

Ubiquitous Language

Eine gemeinsame Sprache zwischen Entwicklern und Domänenexperten, die in allen Aspekten des Projekts verwendet wird.

Bounded Contexts

Klare Grenzen zwischen verschiedenen Teilen des Systems, in denen Begriffe eine spezifische Bedeutung haben.

Entities & Value Objects

Objekte mit Identität (Entities) und ohne Identität (Value Objects), die die Domäne modellieren.

Aggregates

Cluster von Entities und Value Objects mit klaren Grenzen und einer Root-Entity.

Repositories

Abstraktion für den Zugriff auf Domänenobjekte, die die Persistenz von der Domäne trennt.

Domain Services

Operationen, die nicht natürlich zu einer Entity oder einem Value Object gehören.