| Recommend this page to a friend! | 
|  Download | 
| Info | Documentation |  Files |  Install with Composer |  Download | Reputation | Support forum | Blog | Links | 
| Ratings | Unique User Downloads | Download Rankings | ||||
| Not enough user ratings | Total: 61 | All time:  10,489 This week: 53  | ||||
| Version | License | PHP version | Categories | |||
| ch-domain-model 1.0 | Custom (specified... | 8.1 | Data types, Design Patterns, PHP 8 | 
Complex Heart allows you to model your domain Aggregates, Entities, and Value Objects using a set of traits. Great, but why traits and not classes? Well, sometimes you have some kind of inheritance in your classes. Being forced to use a certain base class is too invasive and personally, I don't like it. By using a set of traits and interfaces you have all the functionality you need without compromising the essence of your own domain.
The available traits are:
On top of those base traits Complex Heart provide ready to use compositions:
For more information please check the wiki.
|  Files (51) | 
| File | Role | Description | ||
|---|---|---|---|---|
|  .github (1 file, 2 directories) | ||||
|  src (5 files, 4 directories) | ||||
|  tests (5 files, 1 directory) | ||||
|  wiki (3 files) | ||||
|    composer.json | Data | Auxiliary data | ||
|    LICENSE | Lic. | License text | ||
|    phpunit.xml | Data | Auxiliary data | ||
|    README.md | Doc. | Documentation | ||
|    sonar-project.properties | Data | Auxiliary data | ||
|  Files (51) | / | .github | 
| File | Role | Description | ||
|---|---|---|---|---|
|  ISSUE_TEMPLATE (2 files) | ||||
|  workflows (2 files) | ||||
|    CODEOWNERS | Data | Auxiliary data | ||
|  Files (51) | / | .github | / | ISSUE_TEMPLATE | 
| File | Role | Description | 
|---|---|---|
|    bug_report.md | Data | Auxiliary data | 
|    feature_request.md | Data | Auxiliary data | 
|  Files (51) | / | .github | / | workflows | 
| File | Role | Description | 
|---|---|---|
|    documentation.yml | Data | Auxiliary data | 
|    test.yml | Data | Auxiliary data | 
|  Files (51) | / | src | 
| File | Role | Description | ||
|---|---|---|---|---|
|  Errors (1 file) | ||||
|  Exceptions (2 files) | ||||
|  Traits (7 files) | ||||
|  ValueObjects (9 files) | ||||
|  IsAggregate.php | Class | Class source | ||
|  IsEntity.php | Class | Class source | ||
|  IsModel.php | Class | Class source | ||
|  IsValueObject.php | Class | Class source | ||
|  TypedCollection.php | Class | Class source | ||
|  Files (51) | / | src | / | Exceptions | 
| File | Role | Description | 
|---|---|---|
|  InstantiationException.php | Class | Class source | 
|  InvariantViolation.php | Class | Class source | 
|  Files (51) | / | src | / | Traits | 
| File | Role | Description | 
|---|---|---|
|  HasAttributes.php | Class | Class source | 
|  HasDomainEvents.php | Class | Class source | 
|  HasEquality.php | Class | Class source | 
|  HasIdentity.php | Class | Class source | 
|  HasImmutability.php | Class | Class source | 
|  HasInvariants.php | Class | Class source | 
|  HasTypeCheck.php | Class | Class source | 
|  Files (51) | / | src | / | ValueObjects | 
| File | Role | Description | 
|---|---|---|
|  ArrayValue.php | Class | Class source | 
|  BooleanValue.php | Class | Class source | 
|  DateTimeValue.php | Class | Class source | 
|  EnumValue.php | Class | Class source | 
|  FloatValue.php | Class | Class source | 
|  IntegerValue.php | Class | Class source | 
|  StringValue.php | Class | Class source | 
|  UUIDValue.php | Class | Class source | 
|  Value.php | Class | Class source | 
|  Files (51) | / | tests | 
| File | Role | Description | ||
|---|---|---|---|---|
|  OrderManagement (1 directory) | ||||
|  AggregatesTest.php | Class | Class source | ||
|    Pest.php | Aux. | Auxiliary script | ||
|  TraitsTest.php | Class | Class source | ||
|  TypedCollectionTest.php | Class | Class source | ||
|  ValueObjectsTest.php | Class | Class source | ||
|  Files (51) | / | tests | / | OrderManagement | / | Domain | 
| File | Role | Description | ||
|---|---|---|---|---|
|  Errors (1 file) | ||||
|  Events (1 file) | ||||
|  Customer.php | Class | Class source | ||
|  Order.php | Class | Class source | ||
|  OrderLine.php | Class | Class source | ||
|  OrderLines.php | Class | Class source | ||
|  Price.php | Class | Class source | ||
|  Reference.php | Class | Class source | ||
|  Tags.php | Class | Class source | ||
|  Files (51) | / | tests | / | OrderManagement | / | Domain | / | Errors | 
| File | Role | Description | 
|---|---|---|
|  InvalidPriceError.php | Class | Class source | 
|  Files (51) | / | tests | / | OrderManagement | / | Domain | / | Events | 
| File | Role | Description | 
|---|---|---|
|  OrderCreated.php | Class | Class source | 
|  Files (51) | / | wiki | 
| File | Role | Description | 
|---|---|---|
|    Domain-Modeling-Aggregates.md | Data | Auxiliary data | 
|    Domain-Modeling-Entities.md | Data | Auxiliary data | 
|    Domain-Modeling-Value-Objects.md | Data | Auxiliary data | 
| The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. | 
|  Install with Composer | 
| Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
| 100% | 
 | 
 | 
| Applications that use this package | 
 If you know an application of this package, send a message to the author to add a link here.
 If you know an application of this package, send a message to the author to add a link here.