Reprendre un projet Laravel existant avec une checklist technique fiable
Méthode de reprise Laravel: audit rapide, dépendances, migrations, logs, queues, sécurité, tests et plan d'action pour stabiliser sans tout réécrire.
Sommaire
Reprendre un projet Laravel existant avec une checklist technique fiable
Reprendre un projet Laravel demande plus de méthode que d'enthousiasme. Avant de corriger, refactorer ou ajouter une fonctionnalité, il faut comprendre l'état réel du code, du serveur, des données et des flux métier.
Ce tutoriel propose une checklist de reprise pragmatique. Elle sert pour un projet abandonné, un changement de prestataire, un renfort agence ou une application interne qui a grandi sans documentation.
Objectif
L'objectif n'est pas de tout réécrire. L'objectif est de répondre vite à trois questions:
- est-ce que l'application peut être maintenue sans risque immédiat?
- quels sont les points qui peuvent casser en production?
- quelles actions donnent le meilleur retour sécurité, stabilité et performance?
Une bonne reprise commence par un diagnostic court, écrit et priorisé.
1. Faire démarrer le projet localement
La première victoire est simple: obtenir un environnement local reproductible.
Vérifiez:
- version PHP;
- version Laravel;
- extensions PHP;
- base de données;
- Redis ou cache utilisé;
- stockage local ou S3;
- variables
.env; - commandes de build front si le projet en a besoin.
Commandes utiles:
php -v
composer install
php artisan about
php artisan migrate:status
php artisan route:list
Si l'installation demande des manipulations non documentées, notez-les immédiatement dans un README.md. Une reprise réussie laisse le projet plus clair qu'à l'arrivée.
2. Lire composer.json
Le fichier composer.json donne beaucoup d'informations:
composer show --direct
composer outdated --direct
Repérez:
- packages abandonnés;
- packages bloqués sur une vieille version;
- dépendances critiques: paiement, PDF, Excel, permissions, médias;
- scripts Composer qui lancent des commandes automatiques;
- version minimale de PHP.
Ne mettez pas tout à jour dès le premier jour. Listez d'abord les risques.
3. Contrôler les migrations
Une application Laravel saine doit avoir un historique de migrations fiable.
php artisan migrate:status
Points à surveiller:
- migrations non jouées;
- colonnes modifiées directement en production;
- tables sans clés étrangères;
- indexes manquants sur les colonnes filtrées;
- migrations qui manipulent des données métier sans garde-fou.
Pour les projets anciens, ne lancez jamais des migrations en production sans backup et sans lecture du SQL généré si le volume est important.
4. Inspecter les routes
La liste des routes révèle vite la surface exposée:
php artisan route:list --except-vendor
Regardez:
- routes publiques non protégées;
- routes admin sans middleware;
- endpoints webhooks;
- routes de téléchargement;
- routes de debug restées actives;
- méthodes
GETqui modifient des données.
Un bon premier correctif consiste souvent à durcir les middlewares et à limiter les routes sensibles.
5. Vérifier l'authentification et les permissions
Dans une reprise Laravel, les permissions sont souvent implicites.
Cherchez:
grep -R "Gate::\\|Policy\\|can(" app routes -n
Vérifiez que:
- les actions admin passent par des policies;
- l'utilisateur ne peut modifier que ses données;
- les téléchargements privés sont autorisés explicitement;
- les rôles ne sont pas seulement cachés côté front;
- les routes API ont une stratégie claire.
Si les permissions sont faibles, corrigez par petites zones: documents, commandes, utilisateurs, paramètres.
6. Regarder les logs et erreurs
Avant de toucher le code, lisez les traces:
tail -n 200 storage/logs/laravel.log
En production, regardez aussi:
- logs PHP-FPM;
- logs Nginx;
- failed jobs;
- erreurs paiement;
- erreurs webhooks;
- timeouts HTTP.
Les logs racontent souvent mieux le projet que le README.
7. Contrôler queues, scheduler et jobs
Beaucoup d'applications Laravel dépendent de traitements asynchrones.
php artisan schedule:list
php artisan queue:failed
Vérifiez:
- worker Supervisor ou Horizon;
- jobs qui échouent en boucle;
- tâches planifiées jamais exécutées;
- timeouts trop courts;
- absence de retry ou de backoff;
- traitements critiques sans idempotence.
Si la file est fragile, stabilisez-la avant d'ajouter de nouvelles fonctionnalités.
8. Auditer les intégrations externes
Listez les fournisseurs:
- Stripe;
- Brevo ou autre SMTP;
- S3;
- DocuSign;
- CRM;
- API métier;
- webhooks entrants.
Pour chaque intégration, notez:
- variable
.env; - endpoint;
- mode test ou production;
- logs;
- retries;
- signature;
- procédure de rotation de clé.
Les intégrations sont les zones où une reprise casse le plus vite.
9. Lancer les tests existants
S'il y a des tests:
php artisan test
S'il n'y en a pas, commencez par quelques tests de caractérisation:
- login;
- création d'un dossier;
- paiement ou commande;
- webhook;
- génération PDF;
- permission critique.
Le but n'est pas d'obtenir une couverture parfaite. Le but est de figer les comportements essentiels avant refactor.
10. Produire un plan d'action
À la fin du diagnostic, classez les actions:
- urgent: sécurité, données, production instable;
- important: dette qui ralentit les évolutions;
- confort: refactor ou amélioration DX;
- plus tard: gros chantier sans gain immédiat.
Exemple:
Priorité 1: protéger les routes de téléchargement.
Priorité 2: corriger les jobs échoués et configurer Supervisor.
Priorité 3: documenter l'installation locale.
Priorité 4: ajouter tests sur commandes et webhooks.
Un client préfère souvent un plan clair à une longue liste de remarques techniques.
Conclusion
Reprendre un projet Laravel, ce n'est pas juger l'ancien code. C'est remettre de la visibilité, de la stabilité et de la confiance.
Une checklist structurée permet d'agir vite sans casser: environnement, dépendances, migrations, routes, permissions, logs, queues, intégrations et tests. À partir de là, les corrections deviennent priorisées plutôt que réactives.