evaneos/silex-rest-skeleton

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (v2.0.0) of this package.

Silex REST skeleton

v2.0.0 2016-08-24 14:11 UTC

This package is auto-updated.

Last update: 2020-11-03 19:25:00 UTC


README

Build Status

You can create a new project using this skeleton by running the following command: $>echo n | composer create-project evaneos/silex-rest-skeleton <your-project-name> -s dev

After that, you'll have to:

  1. Setup git

$>composer git-setup git@github.com:<vendor-name>/<project-name>

You can see all remote via git remote -v

origin target you application repository and upstream the silex skeleton project

  1. Setup the env for docker
  • In infrastructure/environment/dev/php/config, create your blackfire-agent.env file from blackfire-agent.env.tpl to set your blackfire conf.
  • In infrastructure/environment/dev/tunnel, create your db.env file from db.env.tpl to set your ssh tunnel to the DB machine.
  • Build the docker images:
    • Go to infrastructure/dockerfiles directory
    • Type the following command $>make build
  • Run your docker containers:
    • Go to infrastructure/environment\dev directory
    • Type the following command $>docker-compose up -d
  • To kill your docker containers:
    • Go to infrastructure/environment\dev directory
    • Type the following command $>docker-compose kill
    • Type the following command $>docker-compose rm -f
  1. Setup and run your app
  • In config, create your config.yml file to setup your app
  • To access your app via http (if your docker containers are running):
    • Type the following command $>docker ps | grep rest-api-nginx and look for the port in the filed looking like this: 0.0.0.0:<your-port>->80tcp
    • Your app is now accessible at http://<your-machine-ip>:<your-port>/
  1. Start coding
  • Put your domain code in src
  • All the app code will go in app
    • Your new Controllers will go in app/API/Controllers and will be declared in a ServiceProvider
    • ControllerProviders will go in app/API/ControllerProviders and will be declared in a ServiceProvider
    • Your routes will be mounted through ControllerProviders in app/Application::mountRoutes
    • Your API resources will go in app/API/Resources
    • Your parameters converters will go in app/API/Converters and will be delcared in app/ServiceProviders/RestAPIServiceProvider or in a new ServiceProvider
    • Your ServiceProviders will go in app/ServiceProviders
    • Your Domain services will be declared in a new ServiceProvider and registered in app/Application::addDomainServices or be registered there directly
  1. Console

At the directory root, you'll find a file named console which will let you launch commands

To add a command:

  • Create it in app/Commands
  • Add its declaration in app/ServiceProviders/CommandsServiceProvider or add a new one
  • Add the command to the application in app/Application::bootCLI