complex-heart / sdk
SDK for Domain-Driven Design that provides framework-agnostic abstractions, allowing you to focus on business logic.
Installs: 1 013
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/complex-heart/sdk
Requires
- php: ^8.2
- ext-json: *
- complex-heart/contracts: ^3.0.0
- complex-heart/criteria: ^4.0.0
- complex-heart/domain-model: ^5.0.0
This package is auto-updated.
Last update: 2025-10-16 07:35:41 UTC
README
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.
Overview
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.
Features
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
Requirements
- PHP ^8.2
- ext-json
Installation
Install via Composer:
composer require complex-heart/sdk
This will install all three packages and their dependencies.
What's Included
Contracts Package
Provides foundational interfaces for:
- Value Objects
- Entities and Aggregates
- Domain Events
- Repositories
- Services
Domain Model Package
Offers base implementations for:
- Value Objects with validation and immutability
- Entities with identity management
- Aggregate roots with domain event handling
- Rich domain behaviors
Criteria Package
Enables flexible querying with:
- Type-safe query building
- Filtering, ordering, and pagination
- Repository-agnostic design
- Composable query specifications
Documentation
For detailed documentation on each package, please visit:
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributing
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.
Support
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