Dans le [Module 7], nous avons sécurisé notre application avec une suite complète de tests Pest PHP validant nos règles métier, nos formulaires Filament et nos autorisations d’accès.
Notre application EquipFlow est terminée, testée et documentée. Reste désormais l’étape décisive : la mise en production.
Déployer un projet Laravel couplé à Filament 5 ne se résume pas à cloner un dépôt Git et lancer php artisan serve. En production, chaque milliseconde compte : il faut compiler les assets, précharger le bytecode PHP, mettre en cache les métadonnées du framework, gérer l’exécution asynchrone des files d’attente (Queues) et assurer la résilience du système.
Dans ce dernier module, nous passons en revue la checklist complète pour exploiter EquipFlow en production avec un niveau d’exigence professionnel.
La Checklist d’optimisation Laravel 13 & PHP 8.6
Avant d’ouvrir le trafic à vos utilisateurs, activez les couches de cache natives du framework.
Mettre en cache la configuration, les routes et les vues
Exécutez cette séquence d’optimisation lors de chaque déploiement :
# Met en cache le fichier de configuration unique
php artisan config:cache
# Compile l'ensemble des routes en un tableau PHP optimisé
php artisan route:cache
# Précompile tous les templates Blade
php artisan view:cache
# Optimise la découverte des événements et des écouteurs
php artisan event:cache
Pour réinitialiser ces caches en cas de mise à jour du fichier .env ou du code, utilisez simplement :
php artisan optimize:clear
Optimisation spécifique à Filament 5
Filament génère dynamiquement des métadonnées pour ses formulaires, tables et composants. Pour éviter d’analyser les classes de ressources à chaque requête HTTP, activez le cache Filament :
# Cache les composants et la découverte des ressources de tous les panels
php artisan filament:cache-components
Réglages d’OPcache pour PHP 8.6
Dans votre fichier php.ini de production, assurez-vous qu’OPcache est configuré pour ne jamais vérifier l’horodatage des fichiers (validate_timestamps=0). Cela garantit que le bytecode reste chargé en RAM :
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
opcache.save_comments=1
Attention : Avec
validate_timestamps=0, tout déploiement nécessite impérativement de recharger le processus PHP-FPM (systemctl reload php8.6-fpm) pour que les modifications de code prennent effet.
Exécution des Workers de Queue en arrière-plan (Supervisor)
Au Module 6, nous avons mis en place un système d’export CSV massif basé sur les Queues de Laravel. Pour que ces fichiers soient générés sans interruption, un worker de fond doit tourner en continu.
Sous un serveur Linux (Ubuntu/Debian), nous utilisons Supervisor.
Créez le fichier de configuration /etc/supervisor/conf.d/equipflow-worker.conf :
[program:equipflow-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/equipflow/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/equipflow/storage/logs/worker.log
stopwaitsecs=3600
Activez et démarrez le service :
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start equipflow-worker:*
Automatisation des tâches planifiées (Cron)
Si vous ajoutez des alertes automatiques pour relancer les clients dont le matériel doit être restitué sous 48 heures, le planificateur de tâches de Laravel doit être exécuté chaque minute via la crontab système :
Ouvrez la crontab de l’utilisateur web (www-data) :
sudo crontab -e -u www-data
Ajoutez la ligne suivante :
* * * * * cd /var/www/equipflow && php artisan schedule:run >> /dev/null 2>&1Script de déploiement Zero-Downtime
Voici le script Bash type à exécuter (via GitHub Actions, Deployer ou Forge) lors de chaque mise à jour sur le serveur :
#!/usr/bin/env bash
set -e
echo "Déploiement en cours..."
# 1. Activation du mode maintenance (avec secret de contournement)
php artisan down --secret="equipflow-deploy-bypass" --render="errors::503"
# 2. Récupération des dernières modifications
git pull origin main
# 3. Installation des dépendances sans paquets de dev
composer install --no-dev --prefer-dist --optimize-autoloader --no-interaction
# 4. Exécution des migrations en base
php artisan migrate --force
# 5. Optimisation et mise en cache
php artisan optimize
php artisan filament:cache-components
# 6. Redémarrage des workers de queue pour charger le nouveau code
php artisan queue:restart
# 7. Rechargement de PHP-FPM (pour vider OPcache)
sudo systemctl reload php8.6-fpm
# 8. Désactivation du mode maintenance
php artisan up
echo "Déploiement terminé avec succès !"
Monitoring et remontée des erreurs critiques
En production, vous ne devez jamais compter sur vos utilisateurs pour vous signaler un problème :
- Journalisation des exceptions : Intégrez un outil de suivi des bugs comme Sentry ou GlitchTip (
composer require sentry/sentry-laravel). Toute exception non capturée dans un formulaire Filament vous alertera instantanément par email ou notification Slack. - Surveillance des tâches de fond : Activez Laravel Pulse (
composer require laravel/pulse) pour suivre l’occupation CPU, la latence moyenne des requêtes HTTP et les temps de traitement de vos exports CSV directement depuis un écran de bord dédié.
Bilan de la série : De l’idée à la production
Au fil de ces 8 modules, nous sommes partis d’un terminal vierge pour aboutir à une solution métier robuste et prête pour le déploiement à grande échelle :
- Module 1 : Poste de travail propre avec PHP 8.6, Laravel 13, Pint et Larastan.
- Module 2 : Modélisation stricte du domaine avec Enums typés, clés étrangères et factories réalistes.
- Module 3 : Prise en main de Filament 5, Panel Provider personnalisé et formulaires conditionnels réactifs.
- Module 4 : Logique métier avancée, scopes d’intégrité, modales d’action rapide et RelationManagers.
- Module 5 : Sécurité d’entreprise, modélisation des rôles (RBAC), Policies et 2FA obligatoire.
- Module 6 : Tableaux de bord de direction, KPIs financiers en direct et exports asynchrones via les Queues.
- Module 7 : Suite de tests automatisés rapides avec Pest PHP sans navigateur lourd.
- Module 8 : Optimisation des caches, supervision des workers et déploiement fiable.
Vous disposez désormais de la méthode complète pour concevoir et déployer vos propres applications d’entreprise sur la stack Laravel 13 & Filament 5.



