From cd4b1dafaaafa3b2f53e44bc21751a549b16c3c8 Mon Sep 17 00:00:00 2001 From: Alberto Marcos Date: Wed, 30 Nov 2022 13:03:57 +0100 Subject: [PATCH] Fixed Readme --- README.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index dd94d40cc..cfa2e526c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- ๐Ÿ˜๐ŸŽฏ Hexagonal Architecture, DDD & CQRS in PHP + ๐Ÿ˜๐ŸŽฏ Hexagonal Architecture, DDD & CQRS in PHP by CodelyTV

@@ -63,8 +63,8 @@ some Symfony and Laravel implementations. ### โ›ฑ๏ธ Bounded Contexts -* [Mooc](src/Mooc): Place to look in if you wanna see some code ๐Ÿ™‚. Massive Open Online Courses public platform with users, videos, notifications, and so on. -* [Backoffice](src/Backoffice): Here you'll find the use cases needed by the Customer Support department in order to manage users, courses, videos, and so on. +- [Mooc](src/Mooc): Place to look in if you wanna see some code ๐Ÿ™‚. Massive Open Online Courses public platform with users, videos, notifications, and so on. +- [Backoffice](src/Backoffice): Here you'll find the use cases needed by the Customer Support department in order to manage users, courses, videos, and so on. ### ๐ŸŽฏ Hexagonal Architecture @@ -106,6 +106,7 @@ src ``` #### Repository pattern + Our repositories try to be as simple as possible usually only containing 2 methods `search` and `save`. If we need some query with more filters we use the `Specification` pattern also known as `Criteria` pattern. So we add a `searchByCriteria` method. @@ -114,33 +115,42 @@ You can see an example [here](src/Mooc/Courses/Domain/CourseRepository.php) and its implementation [here](src/Mooc/Courses/Infrastructure/Persistence/DoctrineCourseRepository.php). ### Aggregates + You can see an example of an aggregate [here](src/Mooc/Courses/Domain/Course.php). All aggregates should extend the [AggregateRoot](src/Shared/Domain/Aggregate/AggregateRoot.php). ### Command Bus + There is 1 implementations of the [command bus](src/Shared/Domain/Bus/Command/CommandBus.php). + 1. [Sync](src/Shared/Infrastructure/Bus/Command/InMemorySymfonyCommandBus.php) using the Symfony Message Bus ### Query Bus + The [Query Bus](src/Shared/Infrastructure/Bus/Query/InMemorySymfonyQueryBus.php) uses the Symfony Message Bus. ### Event Bus + The [Event Bus](src/Shared/Infrastructure/Bus/Event/InMemory/InMemorySymfonyEventBus.php) uses the Symfony Message Bus. The [MySql Bus](src/Shared/Infrastructure/Bus/Event/MySql/MySqlDoctrineEventBus.php) uses a MySql+Pulling as a bus. The [RabbitMQ Bus](src/Shared/Infrastructure/Bus/Event/RabbitMq/RabbitMqEventBus.php) uses RabbitMQ C extension. ## ๐Ÿ“ฑ Monitoring + Every time a domain event is published it's exported to Prometheus. You can access to the Prometheus panel [here](http://localhost:9999/). ## ๐Ÿค” Contributing + There are some things missing (add swagger, improve documentation...), feel free to add this if you want! If you want some guidelines feel free to contact us :) ## ๐Ÿคฉ Extra + This code was shown in the [From framework coupled code to #microservices through #DDD](http://codely.tv/screencasts/codigo-acoplado-framework-microservicios-ddd) talk and doubts where answered in the [DDD y CQRS: Preguntas Frecuentes](http://codely.tv/screencasts/ddd-cqrs-preguntas-frecuentes/) video. ๐ŸŽฅ Used in the CodelyTV Pro courses: -* [๐Ÿ‡ช๐Ÿ‡ธ DDD in PHP](https://pro.codely.tv/library/ddd-en-php/about/) -* [๐Ÿ‡ช๐Ÿ‡ธ Arquitectura Hexagonal](https://pro.codely.tv/library/arquitectura-hexagonal/66748/about/) -* [๐Ÿ‡ช๐Ÿ‡ธ CQRS: Command Query Responsibility Segregation](https://pro.codely.tv/library/cqrs-command-query-responsibility-segregation-3719e4aa/62554/about/) -* [๐Ÿ‡ช๐Ÿ‡ธ Comunicaciรณn entre microservicios: Event-Driven Architecture](https://pro.codely.tv/library/comunicacion-entre-microservicios-event-driven-architecture/74823/about/) + +- [๐Ÿ‡ช๐Ÿ‡ธ DDD in PHP](https://pro.codely.tv/library/ddd-en-php/about/) +- [๐Ÿ‡ช๐Ÿ‡ธ Arquitectura Hexagonal](https://pro.codely.tv/library/arquitectura-hexagonal/66748/about/) +- [๐Ÿ‡ช๐Ÿ‡ธ CQRS: Command Query Responsibility Segregation](https://pro.codely.tv/library/cqrs-command-query-responsibility-segregation-3719e4aa/62554/about/) +- [๐Ÿ‡ช๐Ÿ‡ธ Comunicaciรณn entre microservicios: Event-Driven Architecture](https://pro.codely.tv/library/comunicacion-entre-microservicios-event-driven-architecture/74823/about/)