A boilerplate for DDD, CQRS, Event Sourcing applications using Symfony as framework and running with php7
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.3
- Mysql 8.0
- Elastic & Kibana 6.6
- RabbitMQ 3
Up environment:
make start
Execute tests:
make phpunit
Static code analysis:
make style
Code style fixer:
make cs
Code style checker:
make cs-check
Enter in php container:
make s=php sh
Disable\Enable Xdebug:
make xoff
make xon
Build image to deploy
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 I don't want. For that reason I use ssh connection.
IMPORTANT
ssh in the container it's ONLY for that reason, if you've ssh installed in your production container, you're doing it wrong...
Host:
- Docker 4 Mac:
localhost
- docker machine OR dinghy:
192.168.99.100
Port:
2323
Filesystem mapping:
{PROJECT_PATH}
->/app