L'API a été développée en PHP 7.4 et avec le framework Symfony 4.4.
Nous avons utilisé certains components de Symfony tels que le Workflow
et le Voter
.
Attention !
Vous devez avoir docker et docker-compose d'installer sur votre machine pour lancer l'API !
L'API est par defaut lancée en mode production.
La premiĂšre Ă©tape est de cloner le repository afin d'obtenir les sources du projet.
Pour rappel :
SSH : git clone [email protected]:bref-n-share/api.git
HTTPS : git clone https://github.com/bref-n-share/api.git
Le fichier d'environnement n'est pas versionné sur git pour des raisons de sécurité. En production ce fichier est récupéré sur Google Cloud Platform.
Pour simplifier l'installation, nous vous avons déjà intégré ce fichier au projet dans l'archive que nous vous avons fourni.
Nous avons décidé d'utiliser docker compose pour gérer les différents services de notre projet.
Le fichier docker-compose.yml se trouvant Ă la racine du projet nous permet de mettre en place l'environnement de celui-ci.
chemin_vers_le_projet/# docker-compose build
chemin_vers_le_projet/# docker-compose up -d
chemin_vers_le_projet/# docker exec -it api_fpm_1 /bin/bash
root@fpm:/var/www/html# make
Cette commande va lancer les 4 services liés à notre application, à savoir :
- db
- fpm
- nginx
- pgadmin
Nous avons créé un Dockerfile pour le service fpm. Les autres services quant à eux sont basés uniquement sur des images disponibles https://hub.docker.com/
.
Le Dockerfile et la configuration de nginx sont accessibles dans le dossier services/.
Image: postgres:12.1
Ce service correspond au container de la base de donnée. Nous avons décidé d'utiliser Postgres.
Celle-ci écoute sur le port 5432. Vous pouvez visualiser les données grùce au service pgadmin.
Lien vers le Dockerfile : services/fpm/Dockerfile
Ce service est basé sur l'image php:7.4-fpm, nous avons ensuite ajouté composer, nos différentes configurations et les extentions php que nous utilisons, à savoir les extentions iconv, gd, zip, pdo, pdo_pgsql, pgsql.
PHP-FPM permet la communication entre php et le serveur (nginx). Par defaut, nginx n'est pas capable d'interpreter.
Ce service Ă©coute sur le port 9000 de votre machine.
Lien vers la configuration : services/nginx/default.conf
Ce service est basé sur l'image nginx:1.17. Il correspond au serveur web.
Ce service Ă©coute sur le port 80 de votre machine.
Ce service est basé sur l'image dpage/pgadmin4. Il permet de visualiser les données.
Ce service Ă©coute sur le port 8080 de votre machine.
PgAdmin est accessible Ă l'adresse suivante : http://localhost:8080/
Login
Email : [email protected]
Mot de passe : tp