Skip to content

Instantly share code, notes, and snippets.

@vikbert
Last active March 11, 2019 10:09
Show Gist options
  • Select an option

  • Save vikbert/794560e5b739a8691491589adba71b6e to your computer and use it in GitHub Desktop.

Select an option

Save vikbert/794560e5b739a8691491589adba71b6e to your computer and use it in GitHub Desktop.
[DDD] DDD #ddd, #symfony

DDD Tutorial in PluralSight

Tutorial: clena Architecture: patterns, practices, and principles

recommended websites:

  • Martin Fowler: martinfowler.com
  • Greg Young goodenoughsoftware.net
  • Udi Dahan: udidahan.com
  • Matthew Renze: matthewrenze.com

Tutorial: Domain-driven Design fundamentals

Tutorial: Domain-Driven Design in practice

Tutorial: Modern Software Architecture

Tutorial: Microservices Architecture

DDD project structure in symfony

Domain Layer

  • all classes and interfaces defined in this layer have no dependencies to any third party library.

Infrastructure Layer

  • containers the actual implementations of the business services described in the domain layer.+
  • most dependency injection defitions point to implementations defined in this layer

API layer

  • The API layer provides an API interface to interact with the application. For example, this could be a REST API backend for a modern JavaScript-based frontend. The layer defines routes and controllers that trigger the corresponding operations in the domain layer.

Presentation Layer

  • the presentation layer contains all resources concerned with creating a user interface rendered on the server side for the end user
  • For Symfony, this means that web based controllers, forms with input validation and Twig view scripts are stored in this layer.
  • the presentation layer should not contain any business logic
  • only forward calls to the respective services of the domain layer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment