Skip to content

Provide a set of useful classes and tools to ease the adoption of Domain-Driven Design into your PHP project.

License

Notifications You must be signed in to change notification settings

ComplexHeart/php-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Complex Heart PHP SDK

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

About

Provide a set of useful classes and tools to ease the adoption of Domain-Driven Design into your PHP project.

Topics

Resources

License

Stars

Watchers

Forks