An SDK for building Domain-Driven Design (DDD) applications in PHP. This metapackage bundles the essential Complex Heart libraries to provide a complete toolset for implementing DDD patterns with value objects, entities, aggregates, and flexible query criteria.
The Complex Heart SDK is designed to ease the adoption of Domain-Driven Design principles in PHP projects by providing well-tested, production-ready components that handle common DDD patterns and challenges.
This SDK includes three core packages:
- Contracts - Common interfaces and contracts to decouple domain logic from infrastructure concerns
- Domain Model - Base classes and utilities for building Aggregates, Entities, and Value Objects
- Criteria - Flexible query pattern implementation for building type-safe, repository-agnostic queries
- PHP ^8.2
- ext-json
Install via Composer:
composer require complex-heart/sdkThis will install all three packages and their dependencies.
Provides foundational interfaces for:
- Value Objects
- Entities and Aggregates
- Domain Events
- Repositories
- Services
Offers base implementations for:
- Value Objects with validation and immutability
- Entities with identity management
- Aggregate roots with domain event handling
- Rich domain behaviors
Enables flexible querying with:
- Type-safe query building
- Filtering, ordering, and pagination
- Repository-agnostic design
- Composable query specifications
For detailed documentation on each package, please visit:
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
If you encounter any issues or have questions:
- Open an issue on GitHub Issues
- Check existing issues and discussions
- Review the documentation for each individual package