jafaripur/php-microservice-application

php-microservice skeleton console application starter for microservice node

Maintainers

👁 jafaripur

Package info

github.com/jafaripur/php-microservice-application

Documentation

Type:project

pkg:composer/jafaripur/php-microservice-application

Statistics

Installs: 4

Dependents: 0

Suggesters: 2

Stars: 0

Open Issues: 0

dev-master 2022-08-18 11:06 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT b86c6951ee06f7d3714086d4dd132c1a09042fd9

  • Araz J <mjafaripur.woop@yahoo.com>

templaterabbitmqAMQPMicroservicespiralmicroservice-starter

This package is auto-updated.

Last update: 2026-06-18 19:13:30 UTC


README

👁 prod-build
👁 test

Spiral console application used to write our processors of methods to responsible to client calling.

This application a template for microservice application and implement four methods of jafaripur/php-microservice. Another library created for using this microservice methods jafaripur/php-microservice-user-service.

For consuming and receiving data:

php app.php user-service/listen

For sending tests messages, By using this client library (jafaripur/php-microservice-user-service):

php app.php user-service/send-test

Create project

composer create-project "jafaripur/php-microservice-application dev-master" micro3

Production Build

This application can be run with roadrunner service plugin in production with Dockerfile docker/Dockerfile.prod, Production build with docker:

export DOCKER_BUILDKIT=1 && docker build -f "./docker/Dockerfile.prod" -t "micro3-prod:latest" .

After building, we can create a container or docker swarm service. The production docker image runs with RoadRunner. In this example we use this configuration for RoadRunner, config exist in .rr.yaml file.

version: "2.7"

service:
 topics:
 command: "php ./app.php user-service/listen first-consumer"
 process_num: 10
 exec_timeout: 0
 remain_after_exit: true
 restart_sec: 5

 emits:
 command: "php ./app.php user-service/listen second-consumer"
 process_num: 2
 exec_timeout: 0
 remain_after_exit: true
 restart_sec: 5

logs:
 mode: production
 encoding: console

With this RoadRunner service plugin we can run several consumer with several instance.

For creating docker container from builded image:

docker run -d --init \
 --name micro3-container \
 --restart unless-stopped \
 micro3-prod:latest

And for swarm service:

docker service create --name "micro3-service" \
 --replicas 2 \
 --update-delay 10s \
 micro3-prod:latest

Test

# Run test
docker-compose up --build micro

# Stop and remove created containers
docker-compose down