This project serves as a demonstration of implementing Domain-Driven Design (DDD) principles alongside Command Query Responsibility Segregation (CQRS) within a Symfony application. DDD focuses on modeling business domains in software, while CQRS separates read and write operations to optimize performance and scalability.
- Defines core business logic using entities, value objects, and domain services.
- Encapsulates domain behavior and rules specific to the application's business requirements.
- Implements CQRS pattern with separate command and query sides.
- Commands handle write operations and modify the application's state.
- Queries handle read operations and retrieve data for presentation.
- Contains application services that orchestrate domain logic and interact with the infrastructure layer.
- Integrates with Symfony framework components such as Doctrine ORM for data persistence.
- Provides infrastructure services in vendor-specific implementations.
- If not already done, install Docker Compose (v2.10+)
- Run
make buildto build fresh images - Run
make upto set up and start a fresh Symfony project - Run
make db && make fixturesto set up database schema and load fixtures - Run
make tailwindbuildto set build Tailwind CSS - Open
https://localhostin your favorite web browser and accept the auto-generated TLS certificate - Run
make downto stop the Docker containers.
The implementation of Domain-Driven Design (DDD) principles in software development may vary significantly depending on individual approaches and specific project requirements.