Demo project for the API Platform / DDD Workshop

Overview

Workshop DDD x API Platform

This is a demo project used for the DDD x API Platform Workshop by @chalasr & @mtarld from @coopTilleuls.

Checkout

git clone [email protected]:coopTilleuls/workshop-apip-ddd

Setup

make start

1) Modelling the Domain

git checkout step1-domain

You've got:

  • An api-platform with Hexagonal Architecture.
  • Two Bounded Contexts: Book and Stock with Aggregates (Entites & VOs)

2) Defining the Application' Use Cases

git checkout step2-application

You've got:

  • CRUD-like Commands, Queries, Handlers, Repository interfaces and Domain exceptions allowing to interact with Book context.

3) Wire everything to make things works

git checkout step3-infrastructure
make db-reset

Now the Application use cases are exposed through an API using api-platform, Commands & Queries get handled thanks to symfony/messenger, and data are persisted thanks to doctrine.

4) Exercise

git checkout step4-exercise

You have got a test case covering a new use case allowing to borrow a Book from the Stock. The test case is skipped for now - Your turn, make it pass! :)

5) Finish

An example implementation for the exercise is added on this branch. Please don't cheat, you shouldn't check this out until you did try to do it on step 4) :)

Workshop API/DDD

You might also like...
Ecotone Framework is Service Bus Implementation. It enables message driven architecture and DDD, CQRS, Event Sourcing PHP
Ecotone Framework is Service Bus Implementation. It enables message driven architecture and DDD, CQRS, Event Sourcing PHP

This is Read Only Repository To contribute make use of Ecotone-Dev repository. Ecotone is Service Bus Implementation, which enables message driven arc

This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 3.25.0 platform

This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 3.25.0 platform. It allows you to hear the sound

Laravel & Google Drive Storage - Demo project with Laravel 6.x and earlier

Laravel & Google Drive Storage Demo project with Laravel 8.X Look at the commit history to see each of the steps I have taken to set this up. Set up t

PHP demo application showing how to access the Hubstaff Public API

Public API PHP Demo This repository contains a simple sample cli tool that shows off how to access the Hubstaff public api via PHP. The core access is

Roach-example-project - Example project to demonstrate how to use RoachPHP in a Laravel project.

Example repository to illustrate how to use roach-php/laravel in a Laravel app. Check app/Spiders/FussballdatenSpider.php for an example spider that c

Projet réalisé dans le cadre de l'apprentissage des API et d'API Platform

Bilemo BileMo est une entreprise offrant toute une sélection de téléphones mobiles haut de gamme. Vous êtes en charge du développement de la vitrine d

Vulnerable demo application for the race condition

Vulnerable PHP App (Race Condition) Environment setup: docker-compose up Environment verification: Connection Test: http://localhost/test.php Vulnera

The slides and demo files for my Alpine Day 2021 talk

Building a Better Dialog Austen Cameron - @austencam This repository contains the slides and demos for my talk from Alpine Day 2021. Below, you'll fin

Very soykaf IB+BBS software. Work_In_Progress demo below.

ImoutoIB - Terrible imageboard software. But anon-san — if it's so terrible, Why should I use it? You probably shouldn't. It's not equipped to handle

Owner
Les-Tilleuls.coop
Worker-owned cooperative. API, Web and Cloud experts. Creators of @api-platform, Mercure.rocks and Vulcain.rocks.
Les-Tilleuls.coop
Workshop environment for Decoupled Drupal

Decoupled Drupal Workshop ?? Welcome to the Bluehorn Digital Decoupled Drupal workshop repository! This repository contains a decoupled ready Drupal b

Bluehorn Digital 6 Feb 2, 2022
A Symfony project made with DDD, CQRS and Hexagonal Architecture

Symfony Blog DDD + CQRS + Hexagonal Architecture A Symfony blog project made with CQRS, Hexagonal Architecture and DDD Docker integration This project

null 5 Aug 10, 2022
Simple Symfony API-Platform Template which you can use to start to develop with symfony and api-platform

symfony-api-platform-skeleton Simple Template for Symfony API You can fork it and change the git remote to your Repo git remote set-url <your-git-remo

null 1 Jan 23, 2022
POC d'un projet Clean Architecture + DDD

Proof Of Concept - Clean Architecture & DDD Installation Dans un premier temps, cloner le repository : git clone https://github.com/TBoileau/rse cd rs

Thomas Boileau 11 Sep 3, 2022
A DDD microservice did in laravel, to test infrastructure

A DDD microservice did in laravel, to test infrastructure

pegons 3 Jul 8, 2022
Enraged Xenomorph - DDD/CQRS Symfony Application Boilerplate

Enraged Xenomorph - DDD/CQRS Symfony Application Boilerplate This project is very opinionated attempt to compile a bit of experience, few good practic

Gniewomir Świechowski 1 Jan 10, 2022
🐘 🎯 Hexagonal Architecture, DDD & CQRS in PHP

?? ?? Hexagonal Architecture, DDD & CQRS in PHP Example of a PHP application using Domain-Driven Design (DDD) and Command Query Responsibility Segrega

CodelyTV 2.5k Jan 6, 2023
Dockerise Symfony Application (Symfony 6 + Clean Architecture+ DDD+ CQRS + Docker + Xdebug + PHPUnit + Doctrine ORM + JWT Auth + Static analysis)

Symfony Dockerise Symfony Application Install Docker Install Docker Compose Docker PHP & Nginx Create Symfony Application Debugging Install Xdebug Con

null 48 Jan 5, 2023
Because every Wedding RSVP website needs to follow DDD, CQRS, Hexagonal Architecture, Event Sourcing, and be deployed on Lambda.

Our Wedding Website Because every Wedding RSVP website needs to follow DDD, CQRS, Hexagonal Architecture, Event Sourcing, and be deployed on Lambda. ?

Edd Mann 3 Aug 21, 2022
Clean Architecture, DDD and CQRS using Symfony 6

Task manager system using Clean Architecture, DDD and CQRS. Environment setup Install Docker Clone the project: git clone https://github.com/k0t9i/Tas

null 3 Sep 5, 2022