- Environment dev build with docker
- Automated build with apache ant
- DDD (Domain Driver Design)
- RESTful API
- Implement dev fixtures with alice
- Unit testing with PHPUnit
- Test API with Behat
- CommandHandler
- Implement CommandBus with tactician
- DomainEvents
- Publish Events to RabbitMQ
- Events stored in ElasticSearch
- Nginx logs with ELK (Elasticsearch + Logstash + Kibana)
- Continuous integration with Travis and Docker
NOTE: Refactor Pending
- PHP7
- Nginx
- MySQL
- RabbitMQ
- Elasticsearch
- Logstash
- Kibana
Clone this repository
$ git clone git@github.com:albertcolom/ddd-cms.git
Start docker compose
$ docker-compose up -d
Build environment with Apache Ant
$ docker-compose exec php ant build
Add domain in host (Optional)
127.0.0.1 ddd.cms.dev
- API Doc:
http://localhost/api/doc or http://ddd.cms.dev/api/doc
- RabbitMQ:
http://localhost:15672 or http://ddd.cms.dev:15672
- ElasticSearch:
http://localhost:9200 or http://ddd.cms.dev:9200
- Kibana:
http://localhost:5601 or http://ddd.cms.dev:5601
$ docker-compose exec php bin/console
Listener to read message from RabbitMQ and publish on ElasticSearch
$ docker-compose exec php bin/console rabbitmq:consumer events
PHPunit
$ docker-compose exec php bin/phpunit
or
$ docker-compose exec php ant phpunit
PHP Mess Detector: PHPMD
$ docker-compose exec php bin/phpmd src text ruleset.xml
or
$ docker-compose exec php ant phpmd
CodeSniffer PSR-2
$ docker-compose exec php bin/phpcs --standard=PSR2 src
or
$ docker-compose exec php ant psr2
Behat
$ docker-compose exec php bin/behat
or
$ docker-compose exec php ant behat
Execute all test suite (PHPunit, PHPMD, PSR-2, Behat)
$ docker-compose exec php ant testing