All Projects → davists → Lumen-Doctrine-DDD-Example

davists / Lumen-Doctrine-DDD-Example

Licence: MIT license
Domain Driven Design Application Example, built with Lumen 5.3 and Doctrine.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to Lumen-Doctrine-DDD-Example

Lumen Doctrine
Doctrine module for the Lumen PHP framework.
Stars: ✭ 41 (-43.06%)
Mutual labels:  doctrine, lumen
domain
A collection of entities and helpers for creating domain objects and events
Stars: ✭ 18 (-75%)
Mutual labels:  doctrine, ddd
cart
Domain-Driven Design shop cart demonstration
Stars: ✭ 80 (+11.11%)
Mutual labels:  doctrine, ddd
Php Ddd Example
🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 5
Stars: ✭ 1,960 (+2622.22%)
Mutual labels:  doctrine, ddd
axr
Simple architecture for the better ruby applications
Stars: ✭ 22 (-69.44%)
Mutual labels:  ddd
lumen-session-example
Enable session in lumen framework (Laravel)
Stars: ✭ 22 (-69.44%)
Mutual labels:  lumen
slim-doctrine
Slim-Doctrine managers integration
Stars: ✭ 16 (-77.78%)
Mutual labels:  doctrine
permacoop
Open source and eco design ERP solution reserved for worker-owned business.
Stars: ✭ 167 (+131.94%)
Mutual labels:  ddd
lumen-newrelic
New Relic instrumentation for the Lumen framework
Stars: ✭ 26 (-63.89%)
Mutual labels:  lumen
domain
A dependency-free package to help building a business domain layer
Stars: ✭ 33 (-54.17%)
Mutual labels:  doctrine
ema
External memory app - allows one to quickly post and search text notes
Stars: ✭ 43 (-40.28%)
Mutual labels:  ddd
eShopOnWeb
Sample ASP.NET Core 6.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
Stars: ✭ 8,250 (+11358.33%)
Mutual labels:  ddd
ddd-practitioners-ref
EventStorming workshop, this is a hands-on workshop. Contains such topics: DDD, Event storming, Specification by example. Including the AWS product : Serverless Lambda , DynamoDB, Fargate, CloudWatch.
Stars: ✭ 276 (+283.33%)
Mutual labels:  ddd
cqrs
A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.
Stars: ✭ 155 (+115.28%)
Mutual labels:  ddd
es-emergency-call
Struggling with CQRS, A+ES, DDD? We can help you!
Stars: ✭ 26 (-63.89%)
Mutual labels:  ddd
Laravel-FluentLogger
fluent logger for laravel (with Monolog handler for Fluentd)
Stars: ✭ 55 (-23.61%)
Mutual labels:  lumen
ddd-referenz
Deutsche Übersetzung der DDD Referenz von Eric Evans
Stars: ✭ 58 (-19.44%)
Mutual labels:  ddd
nippo
本アプリケーションはYAPC::Hokkaido 2016の「Vue.jsによるWebアプリケーション開発」用に実装したサンプルアプリケーションです。
Stars: ✭ 17 (-76.39%)
Mutual labels:  lumen
laravel-snowflake
This Laravel package to generate 64 bit identifier like the snowflake within Twitter.
Stars: ✭ 94 (+30.56%)
Mutual labels:  lumen
entrust
This package is based on Zizaco/entrust to support Laravel/Lumen 6+ versions
Stars: ✭ 22 (-69.44%)
Mutual labels:  lumen

Lumen-Doctrine-DDD-Example

Domain Driven Design Application Example, built with Lumen 5.3 and Doctrine.

Introduction

Domain Driven Design approach help us write and maintain our core business preserved from technology dependencies. With the aid of ubiquitous language you could model your Domain and use thirdy part technologies to fit your needs. There are some DDD concepts, that application does not implement as: ValueObject, multiple Entites. The main purpose of this example is to give you a start point in terms of architecture, given the density of DDD, a simple example could not exhaust all the subject. The follow example implements a Store with products and product categories.

Assumptions

The Application Services are understood as Entrypoint for Domain. There is one Controller, Service Application and Service Provider by Domain. Providers map Contracts and Implementations.

Usage

composer install
mv Application/Lumen53/env_example Application/Lumen53/.env
cd Application/Lumen53/
php artisan migrate --path="../../database/migrations/"

API Calls

e.g. GET localhost/Lumen-Doctrine-DDD-Example/Application/Lumen53/public/api/v1/products

Requirements

"php": ">=5.6.4",
"laravel/lumen-framework": "5.3.",
"laravel-doctrine/orm": "1.2.
",

Credits

https://github.com/GrahamCampbell/Laravel-Throttle
https://github.com/tecnom1k3/sp-simple-jwt
https://github.com/krisanalfa/lumen-jwt/blob/develop/app/Http/Middleware/CORSMiddleware.php

References

Domain Driven Design

https://github.com/dddinphp
http://www.zankavtaskin.com/2013/09/applied-domain-driven-design-ddd-part-1.html https://www.youtube.com/watch?v=pL9XeNjy_z4&list=PLx4mLirQvMeV0uNpo1UaculL-djjI8eTz https://www.youtube.com/watch?v=yPvef9R3k-M https://www.youtube.com/watch?v=dnUFEg68ESM

Hexagonal Architecture

http://fideloper.com/hexagonal-architecture http://alistair.cockburn.us/Hexagonal+architecture https://www.yordipauptit.com/hexagonal-architecture-in-php

Laravel Doctrine

http://www.laraveldoctrine.org

YML Doctrine Mapping

http://docs.doctrine-project.org/projects/doctrine-orm/en/stable/reference/yaml-mapping.html

Criteria Array to Doctrine Criteria

https://gist.github.com/jgornick/8671644

Foreign Key

https://maltronblog.wordpress.com/2015/02/15/fkrelation/ https://engineering.thetrainline.com/2015/07/23/foreign-keys-dont-go-there/ http://microservices.io/patterns/data/database-per-service.html

Generators

https://github.com/InfyOmLabs/laravel-generator https://github.com/motamonteiro/gerador

Author

Davi dos Santos - [email protected]

Contributors

Nicolas Escouto - [email protected]

Release Notes

Isolation of framework dependency in Application concerns
Use of YML for mappings
Use of JMS serialization with YML

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].