You can do awesome stuff with php :)
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!
- 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
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
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
- Execute all
- 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
- Execute the
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 :)
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: