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

v3.0.0 2025-10-16 07:34 UTC

This package is auto-updated.

Last update: 2025-10-16 07:35:41 UTC


README

Test License PHP Version

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