Retour au Blog

Code mort : Mission élimination !

Code mort : Mission élimination !

Le développement web, tout comme l'entretien d'un jardin, nécessite un entretien régulier pour éviter que des éléments tombés dans l’oubli, et inutiles ne s'accumulent et ralentissent vos projets. C'est là qu'intervient le Détecteur de code mort pour PHP, une extension puissante de PHPStan qui vous aide à identifier et à supprimer le code inutilisé dans vos projets PHP. Voici tout ce que vous devez savoir sur cet outil pratique et ses fonctionnalités clés.

PHPStan : l'outil indispensable pour un code PHP propre

PHPStan est un outil d’analyse statique pour le langage PHP. Son objectif principal est de détecter des erreurs dans le code avant même que celui-ci ne soit exécuté. Il agit comme un vérificateur de type avancé en inspectant le code source et en identifiant des problèmes potentiels tels que les incohérences de typage, en détectant des types incorrects ou incompatibles dans les variables, paramètres ou retours de fonctions. Il repère les appels de méthodes inexistantes, avertissant si vous tentez d’appeler une méthode qui n’existe pas dans une classe. Il signale également les propriétés manquantes si elles sont utilisées sans avoir été définies, et identifie des erreurs logiques courantes, comme des conditions toujours vraies ou fausses.

PHPStan est particulièrement utile dans les projets où la robustesse et la maintenance du code sont essentielles. Il fonctionne avec une configuration modifiable, permettant de s’adapter aux normes et contraintes spécifiques d’un projet. En outre, il peut s'intégrer facilement dans les pipelines CI/CD pour automatiser l’analyse et garantir une qualité constante du code.

Qu’est-ce que c’est le code mort ?

Dans le développement logiciel, le code mort, également connu sous le nom de code non utilisé ou code obsolète, désigne des parties de code qui ne sont jamais exécutées ou utilisées dans une application. Ce code peut inclure des fonctions, des méthodes, des classes ou même des blocs de code qui ne sont plus nécessaires pour le fonctionnement du programme. Bien que cela puisse sembler inoffensif, le code mort peut avoir des impacts significatifs sur un projet :

  • Évolution du projet : Au fur et à mesure que les exigences du projet changent, certaines parties du code deviennent obsolètes. 
  • Refactorisation : C’est alors que de nouvelles implémentations peuvent rendre certaines parties du code ancien inutiles. 
  • Erreurs de développement : Parfois, du code est écrit mais jamais utilisé en raison d’erreurs de conception ou de développement. 

Impacts du Code Mort sur un projet 

  1. Complexité accrue : Le code mort ajoute une couche de complexité inutile à la base de code. Cela rend le code plus difficile à comprendre et à maintenir, surtout pour les nouveaux développeurs qui rejoignent le projet. La complexité accrue peut également augmenter le risque d’introduire des bugs lors des modifications futures.
  2. Risques de sécurité : Le code mort peut contenir des vulnérabilités qui ne sont pas immédiatement apparentes. Comme il n’est pas utilisé, ces vulnérabilités peuvent passer inaperçues et rester non corrigées, posant un risque pour la sécurité d'application.
  3.  Performance réduite : Bien que le code mort ne soit pas exécuté, il peut encore avoir un impact sur les performances. Par exemple, des classes ou des méthodes non utilisées peuvent être chargées en mémoire, augmentant ainsi l’empreinte mémoire de l'application. De plus, des outils de build et de déploiement peuvent prendre plus de temps à traiter une base de code plus volumineuse. 
  4. Coûts de maintenance : Maintenir du code mort implique des coûts supplémentaires en termes de temps et de ressources. Les développeurs doivent passer du temps à comprendre et à gérer ce code, ce qui pourrait être mieux utilisé pour améliorer les fonctionnalités existantes ou en ajouter de nouvelles. 
  5. Dégradation de la qualité du code : La présence de code mort peut dégrader la qualité globale du code. Il peut introduire des incohérences et des contradictions, rendant le code moins fiable et plus sujet aux erreurs. 
Terminal PHPStan signalant deux erreurs dans Article.php

shipmonk/dead-code-detector : Détectez et supprimez le code mort dans votre projet PHP

Qu'est-ce que c'est ?

L'extension shipmonk/dead-code-detector pour PHPStan est un outil puissant conçu pour identifier et supprimer le code PHP inutilisé dans votre projet. Ce code peut prendre la forme de fonctions, de classes, de propriétés ou de méthodes qui ne sont jamais appelées ou utilisées. En éliminant ce code superflu, vous améliorez la lisibilité de votre base de code, réduisez sa taille et, par conséquent, optimisez les performances de votre application.

Pourquoi l'utiliser ?

  • Amélioration de la maintenabilité, de la compréhension et la modification par vous-même ou par d'autres développeurs.
  • Optimisation des performances: Moins de code signifie des temps de chargement plus rapides et une utilisation moindre des ressources.
  • Sécurité: Le code mort peut parfois contenir des vulnérabilités laissées de côté. En le supprimant, vous réduisez la surface d'attaque de votre application.

Installation

Pour installer cette extension, vous devez utiliser Composer :

Commande Composer pour installer le détecteur de code mort : composer require --dev shipmonk/dead-code-detector

L'option --dev indique que cette dépendance est uniquement nécessaire pour le développement, et non pour la production.

Configuration

Une fois installée, vous devez inclure les règles de l'extension dans votre fichier de configuration PHPStan (généralement phpstan.neon ou phpstan.neon.dist). Voici un exemple :

Configuration PHPStan pour inclure les règles du détecteur de code mort : includes: - vendor/shipmonk/dead-code-detector/rules.neon

Cette ligne indique à PHPStan d'inclure les règles de l'extension dans l'analyse de votre code.

Utilisation

Après avoir configuré l'extension, vous pouvez exécuter PHPStan comme d'habitude. L'extension va alors analyser votre code à la recherche de code mort et vous fournir un rapport détaillé des éléments inutilisés.

Fonctionnalités principales

  • Détection de cycles morts: Repère les parties de code qui ne sont jamais exécutées.
  • Suppression automatique (optionnelle): Certaines extensions peuvent vous permettre de supprimer automatiquement le code mort détecté.

Avantages supplémentaires

  • Intégration avec PHPStan: Bénéficiez de toutes les fonctionnalités de PHPStan, telles que l'analyse de type, la détection des erreurs courantes et la configuration personnalisée.
  • Facilité d'utilisation: L'installation et la configuration sont simples, ce qui rend l'extension accessible à tous les développeurs PHP.
  • Communauté active: Bénéficiez du support et des contributions de la communauté PHPStan.

En résumé

L'extension shipmonk/dead-code-detector est un outil précieux pour améliorer la qualité de votre code PHP. En éliminant le code mort, vous gagnez en productivité, en sécurité et en maintenabilité.

Logo PHPStan

Conseils supplémentaires:

  • Exécutez l'analyse régulièrement: Intégrez l'analyse PHPStan à votre processus de développement continu pour détecter rapidement les problèmes.
  • Configurez les règles en fonction de vos besoins: Vous pouvez personnaliser les règles de l'extension pour adapter l'analyse à votre projet spécifique.
  • Utilisez d'autres outils de nettoyage de code: Combinez PHPStan avec d'autres outils pour obtenir des résultats encore meilleurs.

En adoptant cette extension, vous faites un pas de plus vers un code PHP plus propre, plus efficace et plus facile à maintenir.

Suivez-nous sur GitHub et découvrez nos services !

Pour ne rien manquer de nos projets, solutions et contributions, suivez-nous dès maintenant sur GitHub. Explorez nos dépôts et restez connectés avec notre équipe technique.

Envie d’en savoir plus sur nos expertises et services ? Rendez-vous sur Efficience IT pour découvrir comment nous pouvons vous accompagner dans vos projets numériques. Votre succès est notre priorité !

Contactez-nous !
Je veux en savoir plus !