- git (https://git-scm.com/downloads)
- composer (https://getcomposer.org/download/)
- php with php-xml module (sudo apt-get install php-xml [ubuntu 16]) (https://symfony.com/doc/current/reference/requirements.html)
- mysql
PHP - tested on 7.2, 7.3, 7.4
- Get composer https://getcomposer.org/download/
- Copy config/parameters.yml.dist to config/parameters.yml
- Run 'composer.phar install' in project root folder
- Create database, load fixtures
- php bin/console doctrine:database:create
- php bin/console doctrine:schema:update --force
- php bin/console doctrine:fixtures:load
- Run 'php bin/console server:run localhost:8001'
SF2 standard pattern so controllers are located in AppBundle/Controller, Entities in AppBundle/Entity, all forms to handle parameters and data should be located in AppBundle/Form folder. All custom db queries including native queries should go to Repository objects located in AppBundle/Repository
- src
- AppBundle
- Controller
- JobControler - contains all job related endpoints
- QuoteControler - contains all quote related endpoints
- DataFixtures - Folder for data fixture files
- Entity - Folder for ORM models (Doctrine entity classes)
- Form - Contains form objects that are used to validate the request and bind with objects.
- Repository - Doctrine repositories.
- Controller
- AppBundle
- http://jmsyst.com/libs/serializer <- JMS is used for object rest serialization.
- http://symfony.com/doc/current/validation.html <- sf2 validation constraints doc, should be used on DTO and entities.
- http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html <- in case of native query execution