Getting Started
Create a new project using composer:
composer create-project somnambulist/symfony-micro-service <folder> --no-scripts
Customise the base files as you see fit; change names, (especially the service names), config values etc to suite your needs. Then: docker-compose up -d
to start the docker environment in dev mode. Be sure to read Service Discovery to understand some of how the docker environment is setup.
Note: to use the latest version add dev-master
as the last argument when creating a project. This will checkout and use the current master version, instead of a tagged release.
Alternatively if using Project Manager
with the default templates: spm new:service <service_name> api
or without the service name/template to use the wizard.
Recommended First Steps
This project uses App
and example.dev
throughout. Your first step would be to change the base PHP namespace (if desired). PhpStorms refactoring / renaming is highly recommended for this action.
The domain name is set in several places, it is strongly recommended to change this to something more useful. The following files should be updated:
- .env
- docker-compose*.yml
You should be sure to read Compiled Containers.
Configured Services
The following docker services are pre-configured for development:
- Redis
- PHP 8.0 running php-pm 2.X
Test config includes all services to successfully run tests.
Release / production only defines the app as it is intended to be deployed into a cluster.
Docker Service Names
The Docker container names will be prefixed by a project name defined in the .env
file. This is the constant COMPOSE_PROJECT_NAME
. If you remove it, the current folder name will be used instead. For example: you create a new project called "invoice-service", without setting the COMPOSE constant the containers started via docker-compose
will be prefixed with invoice-service_
. If you have a lot of docker projects, they may have similar folder names, so using this constant avoids collisions.
The second constant that needs setting is APP_SERVICE_APP
. This is the name of the PHP application container. By default this is app
. It is strongly recommended to change this to something that is more unique. If you do change this, be sure to change the container name in the docker-compose*.yml
files otherwise it will not be used. This name is used by SyncIt to resolve the application container and by the bin/dc-*
scripts.
DNS Resolution
DNS and Proxy where moved to data service.