Exploitation
Installation, commandes utiles, sauvegardes et déploiement.
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
| Commande | Effet |
|---|---|
php bin/console cache:clear | Vide le cache. Obligatoire après toute modification de configuration, notamment de role_hierarchy. |
php bin/console doctrine:migrations:migrate | Applique les migrations en attente. |
php bin/console make:migration | Génère une migration à partir des changements d'entités. |
php bin/console debug:router | Liste toutes les routes. |
php bin/console debug:container | Liste les services disponibles. |
php bin/console doctrine:schema:validate | Vérifie la cohérence entre entités et schéma. |
php bin/console list app | Liste les commandes propres à l'application. |
Environnements
| Environnement | Réglage |
|---|---|
| Développement | APP_ENV=dev, APP_DEBUG=1 — barre de débogage et profileur actifs. |
| Production | APP_ENV=prod, APP_DEBUG=0 — puis composer install --no-dev --optimize-autoloader et cache:clear. |
| Tests | APP_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 :
- Sauvegarder la base de données et le dossier des fichiers téléversés.
- Mettre le site en maintenance.
- Récupérer le code, puis
composer install --no-dev --optimize-autoloader. - Appliquer les migrations.
- Vider le cache et réinstaller les assets.
- 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ées —
mysqldumpquotidien, 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.