EDU-SCHOOL EDU-SCHOOL Documentation

Prérequis

  • PHP 8.1 ou supérieur, avec les extensions ctype, iconv, intl, pdo_mysql, gd, zip.
  • MySQL 8 ou MariaDB 10.4 et plus.
  • Composer 2.
  • Un serveur web (Apache ou Nginx) pointant sur le dossier public/.

Installation

# 1. Dépendances
composer install

# 2. Configuration : renseigner DATABASE_URL, APP_SECRET, MAILER_DSN
cp .env .env.local

# 3. Base de données
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate

# 4. Jeu de données initial (optionnel)
php bin/console doctrine:fixtures:load

# 5. Assets
php bin/console importmap:install
php bin/console assets:install public
Secrets
Ne versionnez jamais .env.local. APP_SECRET doit être unique par environnement : il sert notamment à signer les cookies « se souvenir de moi ».

Commandes utiles

CommandeEffet
php bin/console cache:clearVide le cache. Obligatoire après toute modification de configuration, notamment de role_hierarchy.
php bin/console doctrine:migrations:migrateApplique les migrations en attente.
php bin/console make:migrationGénère une migration à partir des changements d'entités.
php bin/console debug:routerListe toutes les routes.
php bin/console debug:containerListe les services disponibles.
php bin/console doctrine:schema:validateVérifie la cohérence entre entités et schéma.
php bin/console list appListe les commandes propres à l'application.

Environnements

EnvironnementRéglage
DéveloppementAPP_ENV=dev, APP_DEBUG=1 — barre de débogage et profileur actifs.
ProductionAPP_ENV=prod, APP_DEBUG=0 — puis composer install --no-dev --optimize-autoloader et cache:clear.
TestsAPP_ENV=test — base dédiée, strict_variables activé sur Twig.
En production
APP_DEBUG doit impérativement valoir 0 : le mode debug expose la configuration, les requêtes SQL et les traces d'erreur.

Déploiement

Des scripts de déploiement et de rollback sont fournis dans scripts/, avec leur propre README. La séquence type est la suivante :

  1. Sauvegarder la base de données et le dossier des fichiers téléversés.
  2. Mettre le site en maintenance.
  3. Récupérer le code, puis composer install --no-dev --optimize-autoloader.
  4. Appliquer les migrations.
  5. Vider le cache et réinstaller les assets.
  6. Contrôler les pages clés, puis lever la maintenance.

En cas de problème, le script de rollback restaure la version précédente et sa base.

Sauvegardes

  • Base de donnéesmysqldump quotidien, conservé hors du serveur applicatif.
  • Fichiers téléversés — photos d'élèves et pièces jointes des préinscriptions ; ils ne sont pas dans la base.
  • Configuration.env.local, sauvegardé séparément et de façon sécurisée.
Testez la restauration au moins une fois : une sauvegarde jamais restaurée n'est pas une sauvegarde. Sauvegardez systématiquement avant chaque migration et chaque clôture comptable.

Journaux et supervision

  • Journaux applicatifs : var/log/prod.log (Monolog).
  • Journal métier : Administration → Mouchard, pour retrouver qui a fait quoi et quand.
  • Journal Mobile Money : Administration → Logs Mobile Money, pour les rapprochements de transactions.