All Projects → somnambulist-tech → domain

somnambulist-tech / domain

Licence: MIT License
A collection of entities and helpers for creating domain objects and events

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to domain

educational-platform
Modular Monolith Java application with DDD
Stars: ✭ 124 (+588.89%)
Mutual labels:  ddd, ddd-cqrs
attribute-events
🔥 Fire events on attribute changes of your Eloquent model
Stars: ✭ 198 (+1000%)
Mutual labels:  ddd, domain-events
cart
Domain-Driven Design shop cart demonstration
Stars: ✭ 80 (+344.44%)
Mutual labels:  doctrine, ddd
csharp-ddd-skeleton
🦈✨ C# DDD Skeleton: Bootstrap your new C# projects applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 67 (+272.22%)
Mutual labels:  ddd, ddd-cqrs
Php Ddd Example
🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 5
Stars: ✭ 1,960 (+10788.89%)
Mutual labels:  doctrine, ddd
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+34400%)
Mutual labels:  ddd, ddd-cqrs
typescript-ddd-course
🔷🔖 TypeScript DDD Course: Learn Domain-Driven Design in TS lesson by lesson
Stars: ✭ 28 (+55.56%)
Mutual labels:  ddd, ddd-cqrs
Lumen-Doctrine-DDD-Example
Domain Driven Design Application Example, built with Lumen 5.3 and Doctrine.
Stars: ✭ 72 (+300%)
Mutual labels:  doctrine, ddd
typescript-ddd-example
🔷🎯 TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 607 (+3272.22%)
Mutual labels:  ddd, ddd-cqrs
React-CleanArchitecture-Example
Sample frontend project with Clean Architecture using React.js and jest.
Stars: ✭ 73 (+305.56%)
Mutual labels:  ddd
iam-ddd-cqrs-es-nestjs
Identity and Access Management
Stars: ✭ 34 (+88.89%)
Mutual labels:  ddd
uno
UNO - Card Game with Java
Stars: ✭ 70 (+288.89%)
Mutual labels:  ddd
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-16.67%)
Mutual labels:  ddd
billing-api
Billing API - Killing a fly with a cannon
Stars: ✭ 17 (-5.56%)
Mutual labels:  ddd
ddd-for-python
A domain-driven design framework for Python.
Stars: ✭ 30 (+66.67%)
Mutual labels:  ddd
ftgogo
FTGOGO - event-driven architecture demonstration application using edat
Stars: ✭ 82 (+355.56%)
Mutual labels:  ddd
CQELight
CQELight is an entreprise grade extensible and customisable framework for creating software with CQRS, DDD & Event Sourcing patterns
Stars: ✭ 21 (+16.67%)
Mutual labels:  ddd
httpmate
Non-invasive, flexible and ultra-extendable http framework that offers you 3 modes of handling http requests - UseCase driven, low-level http and event-driven request handling, as well as a mix of those modes
Stars: ✭ 15 (-16.67%)
Mutual labels:  ddd
coreddd
A set of open-source .NET libraries helping with domain-driven design (DDD) and CQRS
Stars: ✭ 68 (+277.78%)
Mutual labels:  ddd
clean-ddd-php-poc-contacts
A simple contact manager API to demonstrate the concepts of Clean Architecture and DDD with PHP 7.4+.
Stars: ✭ 31 (+72.22%)
Mutual labels:  ddd

Somnambulist Domain Package

GitHub Actions Build Status Issues License PHP Version Current Version

Provides a core set of support classes for building domain oriented projects. This library compiles the previously separate domain and mapping libraries into a single project for easier maintenance.

It consists of:

  • Commands
    • CommandBus interface / abstract command
    • SF Messenger implementation
  • Doctrine
    • Enumeration factories + Type bindings
    • Additional types / type overrides for the Doctrine Type system
    • Abstract EntityLocator that extends EntityRepository
    • Custom Postgres DQL functions
    • Custom traits for EntityRepository
  • Entities
    • Contracts - value object interface definitions
    • Types - a collection of value-objects, enumerations and an aggregate root
    • AggregateRoot - an aggregate root stub implementation that can raise events
    • AbstractEntity and AbstractEntityCollection - child entities and helper for an aggregate root
  • Events
    • EventBus interface / abstract event
    • SF Messenger EventBus implementation
    • Doctrine subscriber that broadcasts onFlush all events from aggregate roots
    • Custom serializer to handle encode/decode when the event class does not exist
  • Jobs
    • JobQueue interface / abstract job
    • SF Messenger implementation
  • Queries
    • QueryBus interface / abstract query
    • SF Messenger implementation
  • default XML mappings for embeddable objects in Doctrine .dcm.xml and Symfony .orm.xml conventions

Requirements

  • PHP 8.0+
  • mb_string
  • bcmath
  • beberlei/assert
  • eloquent/enumeration
  • somnambulist/collection
  • symfony/messenger for the Messenger bus implementations.

Installation

Install using composer, or checkout / pull the files from github.com.

  • composer require somnambulist/domain

Upgrading from 3.X to 4.X

From 4.X this projects was re-namespaced to Somnambulist\Components\Domain. Update all references to reflect this change this includes any Doctrine mapping files / annotations.

The Doctrine AbstractIdentityType was moved out of the Identity namespace to the main Types.

Usage

See the docs folder for more documentation on each component.

Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].