soyuka / apip-ddd

An example of hexagonal API Platform 3 implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hexagonal API Platform 3

An example project using API Platform 3 following the hexagonal architecture.

This example has been explained during the SymfonyLive Paris 2022 (slides).

Getting started

If you wan't to try to use and tweak that example, you can follow these steps:

  1. Run git clone https://github.com/mtarld/apip-ddd to clone the project
  2. Run docker-compose build --pull --no-cache to build fresh images
  3. Run docker-compose up to up your containers
  4. Visit https://localhost and play with your app!

⚠️ Temporary dependencies

As API platform 3 isn't released yet, that repository is using the dev-main branch of api-platform/core. As soon as API Platform is released (it should happen very soon), the v3 tag must be targetterd and the minimum-stability must be updated.

What's inside?

Following links aim to explain the architecture of the project and the purpose of each classes.

Contributing

That implementation is pragmatic and far for being uncriticable. It's mainly an conceptual approach to extend API Platform in order to defer operations to command and query buses.

It could and should be improved, therefore feel free to submit issues and pull requests if something isn't relevant to your use cases or isn't clean enough.

Authors

Mathias Arlaud with the help of Robin Chalas

About

An example of hexagonal API Platform 3 implementation


Languages

Language:PHP 89.7%Language:Dockerfile 5.3%Language:Shell 4.0%Language:Twig 1.0%