Boucle de Vérification Laravel
À exécuter avant les PR, après des changements majeurs et avant le déploiement.
Quand l'utiliser
- Avant d'ouvrir une pull request pour un projet Laravel
- Après des refontes majeures ou des mises à jour de dépendances
- Vérification pré-déploiement pour les environnements de staging ou de production
- Exécution de la pipeline complète : lint -> tests -> sécurité -> préparation au déploiement
Comment ça fonctionne
- Les phases s'exécutent séquentiellement, des vérifications d'environnement jusqu'à la préparation au déploiement, chaque couche reposant sur la précédente.
- Les vérifications d'environnement et de Composer verrouillent tout le reste ; arrêtez immédiatement si elles échouent.
- Le linting et l'analyse statique doivent être propres avant d'exécuter les tests complets avec couverture.
- Les vérifications de sécurité et de migration ont lieu après les tests, afin de valider le comportement avant les étapes de données ou de publication.
- Les vérifications de construction/déploiement et de files/planificateur sont les dernières barrières ; tout échec bloque la publication.
Phase 1 : Vérifications d'Environnement
php -v
composer --version
php artisan --version
- Vérifier que
.envest présent et que les clés requises existent - Confirmer que
APP_DEBUG=falsepour les environnements de production - Confirmer que
APP_ENVcorrespond au déploiement cible (production,staging)
Si vous utilisez Laravel Sail en local :
./vendor/bin/sail php -v
./vendor/bin/sail artisan --version
Phase 1.5 : Composer et Autoload
composer validate
composer dump-autoload -o
Phase 2 : Linting et Analyse Statique
vendor/bin/pint --test
vendor/bin/phpstan analyse
Si votre projet utilise Psalm au lieu de PHPStan :
vendor/bin/psalm
Phase 3 : Tests et Couverture
php artisan test
Couverture (CI) :
XDEBUG_MODE=coverage php artisan test --coverage
Exemple CI (format -> analyse statique -> tests) :
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
Phase 4 : Vérifications de Sécurité et Dépendances
composer audit
Phase 5 : Base de Données et Migrations
php artisan migrate --pretend
php artisan migrate:status
- Examinez attentivement les migrations destructrices
- Assurez-vous que les noms de fichiers de migration suivent le format
Y_m_d_His_*(ex.2025_03_14_154210_create_orders_table.php) et décrivent clairement le changement - Assurez-vous que les rollbacks sont possibles
- Vérifiez les méthodes
down()et évitez les pertes de données irréversibles sans sauvegardes explicites
Phase 6 : Construction et Préparation au Déploiement
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Assurez-vous que les warmups de cache réussissent dans la configuration de production
- Vérifiez que les workers de files et le planificateur sont configurés
- Confirmez que
storage/etbootstrap/cache/sont accessibles en écriture dans l'environnement cible
Phase 7 : Vérifications des Files et du Planificateur
php artisan schedule:list
php artisan queue:failed
Si Horizon est utilisé :
php artisan horizon:status
Si queue:monitor est disponible, utilisez-le pour vérifier l'arriéré sans traiter les jobs :
php artisan queue:monitor default --max=100
Vérification active (staging uniquement) : envoyez un job sans effet à une file dédiée et exécutez un seul worker pour le traiter (assurez-vous qu'une connexion de file non-sync est configurée).
php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=healthcheck
Vérifiez que le job a produit l'effet secondaire attendu (entrée de log, ligne dans une table healthcheck, ou métrique).
Exécutez ceci uniquement sur des environnements non-productifs où le traitement d'un job de test est sûr.
Exemples
Flux minimal :
php -v
composer --version
php artisan --version
composer validate
vendor/bin/pint --test
vendor/bin/phpstan analyse
php artisan test
composer audit
php artisan migrate --pretend
php artisan config:cache
php artisan queue:failed
Pipeline de type CI :
composer validate
composer dump-autoload -o
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
composer audit
php artisan migrate --pretend
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan schedule:list