sdecandelario / cqrs-ddd-php-example

CQRS PHP Example. Specific examples about how to model an app following DDD and CQRS principles

Home Page:http://codely.tv/screencasts/codigo-acoplado-framework-microservicios-ddd/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

You can do awesome stuff with php :)

CodelyTV Symfony CircleCI

Implementation example of a PHP application following Domain-Driven Design (DDD) and Command Query Responsibility Segregation (CQRS) principles, keeping the code as simple as possible.

Take a look, play and have fun with this!

πŸš€ Environment setup

Install the needed tools

  • Clone this repository: git clone https://github.com/CodelyTV/cqrs-ddd-php-example cqrs-ddd-php-example
  • Move to your project folder: cd cqrs-ddd-php-example
  • Install dependencies: composer install

Run the tests!

Once you have all the dependencies, in order to execute the tests, run this command:

  • vendor/bin/behat -p api This will also create all needed databases.
  • vendor/bin/behat -p applications
  • vendor/bin/phpunit

Run the environment

While this doesn't have a docker integration (feel free to do a pull request :) we need a few thing to run this.

  • A MySQL database
    • Execute all .sql from /databases dir
  • Apache/Nginx
  • Supervisord
    • Execute the applications/api/bin/console codelytv:domain-events:generate-supervisor-files command
    • Link the applications/api/app/config/supervisor folder to the supervisor config one
    • Start supervisord

🧐 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 show in the From framework coupled code to #microservices through #DDD talk and doubts where answered in DDD y CQRS: Preguntas Frecuentes video.

πŸŽ₯ Used in the CodelyTV Pro courses:

About

CQRS PHP Example. Specific examples about how to model an app following DDD and CQRS principles

http://codely.tv/screencasts/codigo-acoplado-framework-microservicios-ddd/


Languages

Language:PHP 98.5%Language:Gherkin 1.4%Language:Shell 0.1%