Download the PHP package php-architecture-kit/domain-core without Composer
On this page you can find all versions of the php package php-architecture-kit/domain-core. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download php-architecture-kit/domain-core
More information about php-architecture-kit/domain-core
Files in php-architecture-kit/domain-core
Download php-architecture-kit/domain-core
More information about php-architecture-kit/domain-core
Files in php-architecture-kit/domain-core
Vendor php-architecture-kit
Package domain-core
Short Description Domain Core abstract classes, interfaces and categorized exceptions.
License MIT
Homepage https://github.com/php-architecture-kit/domain-core
Package domain-core
Short Description Domain Core abstract classes, interfaces and categorized exceptions.
License MIT
Homepage https://github.com/php-architecture-kit/domain-core
Please rate this library. Is it a good library?
Informations about the package domain-core
php-architecture-kit/domain-core
Domain-Driven Design building blocks for PHP applications. Provides abstract classes, interfaces, and categorized domain exceptions mappable to HTTP status codes.
Features
- AggregateRoot - Base class with domain event recording
- DomainEvent - Marker interface for domain events
- Categorized Exceptions - 7 domain exceptions mapped to HTTP codes (400, 402, 403, 409, 422, 424, 451)
- Zero dependencies - Pure PHP, no external packages
- PHP 7.4+ - Compatible with legacy and modern PHP
Installation
Quick Start
Aggregate Root
Using Domain Events
Domain Exceptions
All exceptions extend \DomainException and can be mapped to HTTP status codes in your infrastructure layer.
| Exception | HTTP Code | When to Use |
|---|---|---|
InvalidInputException |
400 Bad Request | Input data violates business rules |
PaymentStatusException |
402 Payment Required | Action requires specific payment status |
InsufficientPrivilegeException |
403 Forbidden | User lacks required role/relationship |
InvalidStateToPerformActionException |
409 Conflict | Aggregate state doesn't allow action |
InvalidStateCausedException |
422 Unprocessable Entity | Data would cause invalid state |
DependencyStateException |
424 Failed Dependency | Dependent aggregate unavailable/wrong state |
LegalRestrictionException |
451 Unavailable For Legal Reasons | Legal restrictions prevent action |
Exception Usage Examples
HTTP Mapping (Infrastructure Layer)
API Reference
AggregateRoot
| Method | Visibility | Description |
|---|---|---|
getEvents(): DomainEvent[] |
public | Returns recorded events without clearing |
releaseEvents(): DomainEvent[] |
public | Returns and clears recorded events |
recordEvent(DomainEvent $event): void |
protected | Records a domain event |
DomainEvent
Marker interface - implement in your domain event classes:
Exceptions
All exceptions extend \DomainException and accept standard parameters:
Testing
Package is tested with PHPUnit in the php-architecture-kit/workspace project.
License
MIT
All versions of domain-core with dependencies
PHP Build Version
Package Version
Requires
php Version
^7.4 || ^8.0
The package php-architecture-kit/domain-core contains the following files
Loading the files please wait ...