Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: Test

on:
push:
branches:
- main
branches: [ 'main' ]
pull_request:
types: [opened, synchronize, reopened]
types: [ 'opened', 'synchronize', 'reopened' ]


jobs:
test:
Expand Down
85 changes: 77 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,82 @@
# Complex Heart PHP SDK

[![Test](https://github.com/ComplexHeart/php-sdk/actions/workflows/test.yml/badge.svg)](https://github.com/ComplexHeart/php-sdk/actions/workflows/test.yml)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![PHP Version](https://img.shields.io/badge/php-%5E8.2-blue)](https://www.php.net/)

Provide a set of useful classes and tools to ease the adoption of Domain Driven
Design into your project.
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.

- [Contracts](https://github.com/ComplexHeart/php-contracts): Commons interfaces
to decouple some parts of the Domain.
- [Data Model](https://github.com/ComplexHeart/php-domain-model): Aggregates,
Entities and Value Objects.
- [Criteria](https://github.com/ComplexHeart/php-criteria): Small implementation
of a criteria pattern in PHP for Complex Heart SDK.
## 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](https://github.com/ComplexHeart/php-contracts)** - Common interfaces and contracts to decouple domain logic from infrastructure concerns
- **[Domain Model](https://github.com/ComplexHeart/php-domain-model)** - Base classes and utilities for building Aggregates, Entities, and Value Objects
- **[Criteria](https://github.com/ComplexHeart/php-criteria)** - Flexible query pattern implementation for building type-safe, repository-agnostic queries

## Requirements

- PHP ^8.2
- ext-json

## Installation

Install via Composer:

```bash
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:

- [Contracts Documentation](https://github.com/ComplexHeart/php-contracts#readme)
- [Domain Model Documentation](https://github.com/ComplexHeart/php-domain-model#readme)
- [Criteria Documentation](https://github.com/ComplexHeart/php-criteria#readme)

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](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](https://github.com/ComplexHeart/php-sdk/issues)
- Check existing issues and discussions
- Review the documentation for each individual package
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "complex-heart/sdk",
"description": "Domain model toolset to properly build Value Objects, Entities, Aggregates and Services.",
"description": "SDK for Domain-Driven Design that provides framework-agnostic abstractions, allowing you to focus on business logic.",
"type": "library",
"license": "Apache-2.0",
"authors": [
Expand All @@ -13,8 +13,8 @@
"require": {
"php": "^8.2",
"ext-json": "*",
"complex-heart/contracts": "^2.0.0",
"complex-heart/domain-model": "^4.0.0",
"complex-heart/contracts": "^3.0.0",
"complex-heart/domain-model": "^5.0.0",
"complex-heart/criteria": "^4.0.0"
}
}
21 changes: 0 additions & 21 deletions phpunit.xml

This file was deleted.