A boilerplate for DDD, CQRS, Event Sourcing applications using Symfony as framework and running with php7
Symfony 4 still available in symfony-4 branch
Creating an Application Use Case
- Environment in Docker
- Symfony Messenger
- Event Store
- Read Model
- Async Event subscribers
- Rest API
- Web UI (A Terrible UX/UI)
- Event Store Rest API
- Swagger API Doc
- Sign up
- Change Email
- Sign in
- Logout
- PHP 7.4
- Mysql 8.0
- Elastic & Kibana 7.6
- RabbitMQ 3
Action | Command |
---|---|
Setup | make start |
Run Tests | make phpunit |
Static Analisys | make style |
Code Style | make cs |
Code style check | make cs-check |
PHP Shell | make s=php sh |
Xdebug | make xoff/xon |
Build Artifacts | make artifact |
PHPSTORM has native integration with Docker compose. That's nice but will stop your php container after run the test scenario. That's not nice when using fpm. A solution could be use another container just for that purpose but is way slower and I don't want. For that reason I use ssh connection.
ssh in the container it's ONLY for that reason and ONLY in the DEV TAG, if you've ssh installed in your production container, you're doing it wrong...*
Click here for the detailed instructions about how to setup the PHP remote interpreter in PHPStorm.
If you're already familiar with it, here a quick configuration reference:
Host | Direction |
---|---|
Docker 4 mac | localhost |
Dinghy | $ dinghy ip |
Port: 2323
Filesystem mapping: {PROJECT_PATH}
-> /app