symfony-ddd

Implement Symfony 7 backend features with Hexagonal Architecture, DDD, and CQRS.

1|Updated Dec 10, 2025
One-click install
npx skills add https://github.com/jakubciszak/family-plan --skill symfony-ddd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: symfony-ddd
Source: https://github.com/jakubciszak/family-plan/tree/main/.claude/skills/symfony-ddd
Command: npx skills add https://github.com/jakubciszak/family-plan --skill symfony-ddd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Symfony 7 with Hexagonal Architecture, Domain-Driven Design (DDD), and CQRS patterns. Use this skill when implementing backend features, creating entities, commands, queries, repositories, or working with bounded contexts.

Core Features & Use Cases

  • Structured hexagonal architecture with Domain, Application, and Infrastructure layers and clearly defined bounded contexts.
  • Rich domain models including Entities, Value Objects, Domain Events, and idiomatic Repository patterns.
  • Commands, Queries, and CQRS-based workflows with Symfony integration and dependency injection.
  • Practical examples across bounded contexts like UserManagement, TaskManagement, and PointsManagement demonstrating end-to-end workflows.

Quick Start

Scaffold a Symfony 7 project and implement a sample bounded context with an entity, a command, and a query to observe the CQRS pattern in action.

Frequently Asked Questions about symfony-ddd

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a Symfony 7 backend using Domain-Driven Design and CQRS?

Structure Symfony 7 backends by dividing logic into Domain, Application, and Infrastructure layers using hexagonal architecture. Apply CQRS patterns by separating commands and queries, ensuring strict boundaries within bounded contexts like UserManagement or TaskManagement.

What is the best way to implement bounded contexts in a Symfony application?

Bounded contexts in Symfony are implemented by defining clear modular boundaries for specific domains, such as PointsManagement. This approach isolates domain logic, entities, and repositories, ensuring that features remain modular and independent across the application's architecture.

How do you separate command and query workflows in Symfony hexagonal architecture?

Separate workflows in hexagonal architecture by using distinct commands for state changes and queries for data retrieval. This CQRS-based workflow integrates with Symfony's dependency injection, routing write operations through commands and read operations through queries.

Do I need to enforce immutability for value objects in Symfony DDD implementations?

Yes, enforcing immutability for value objects is required in Symfony DDD implementations. Immutability must also be applied to domain events to maintain strict separation between Domain, Application, and Infrastructure layers and ensure consistent state management.

Can I use this Skill to scaffold a complete Symfony project with domain events?

Yes, you can scaffold a Symfony 7 project and implement a sample bounded context with an entity, a command, and a query. This demonstrates the CQRS pattern in action, including the use of rich domain models and domain events.

What are the limitations of applying CQRS patterns in Symfony 7?

Applying CQRS patterns in Symfony 7 requires strict adherence to separating Domain, Application, and Infrastructure layers. The approach demands careful structuring of commands, queries, and repositories within bounded contexts, which may introduce complexity for simple CRUD operations.