api/README.md

2.2 KiB

Treasure Hunt API avec Laravel Sail

Ce projet se lance via Laravel Sail (Docker). Ce guide explique comment demarrer l'environnement et executer les commandes courantes.

Prerequis

  • Docker Desktop ou Engine avec Docker Compose actif.
  • Si vendor/ est absent, installez d'abord les dependances pour recuperer Sail: composer install (en local) ou ./vendor/bin/sail composer install.
  • Copiez le fichier .env.example vers .env et adaptez les valeurs utiles (APP_PORT, VITE_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, FORWARD_DB_PORT).

Demarrage rapide

  1. Lancer la stack: ./vendor/bin/sail up -d.
  2. Generer la cle d'application: ./vendor/bin/sail artisan key:generate.
  3. Initialiser la base: ./vendor/bin/sail artisan migrate.
  4. (Optionnel) Ajouter un alias shell pour simplifier: alias sail="./vendor/bin/sail".

Ports et services

  • Application: APP_PORT (80 par defaut).
  • Vite: VITE_PORT (5173 par defaut).
  • MySQL 8.0: FORWARD_DB_PORT (3306 par defaut). Les donnees sont stockees dans le volume Docker sail-mysql.
  • Les conteneurs sont definis dans compose.yaml (service principal laravel.test et base mysql).

Commandes courantes

  • Demarrer: sail up -d (ou ./vendor/bin/sail up -d sans alias).
  • Arreter: sail down.
  • Rebuild si l'image change: sail up -d --build ou sail build --no-cache.
  • Logs: sail logs -f laravel.test ou sail logs -f mysql.
  • Shell applicatif: sail shell (ou sail bash).
  • Artisan: sail artisan migrate, sail artisan migrate:fresh --seed, sail artisan tinker.
  • Tests: sail artisan test.

Base de donnees

  • Acces host: 127.0.0.1:<FORWARD_DB_PORT> avec les identifiants definis dans .env.
  • Pour repartir de zero: sail down -v (supprime les volumes, donc les donnees) puis sail up -d et sail artisan migrate --seed.

Debug et outils

  • Activer Xdebug en ajoutant dans .env: SAIL_XDEBUG_MODE=develop,debug et SAIL_XDEBUG_CONFIG=client_host=host.docker.internal, puis sail up -d --build.
  • Composer/PHP direct: sail composer <cmd>, sail php -v.
  • Nettoyage des images intermediaires: sail down puis docker system prune (optionnel).