Maison  >  Article  >  développement back-end  >  Mises à niveau PHP : bloquer les régressions avec PHPStan

Mises à niveau PHP : bloquer les régressions avec PHPStan

Barbara Streisand
Barbara Streisandoriginal
2024-09-24 20:15:311019parcourir

PHP Upgrades: Block regressions with PHPStan
Photo de Ron McClenny sur Unsplash

Souvent, lorsque les gens pensent à PHPStan, ils pensent généralement à améliorer la couverture des types. Ce n’est en réalité qu’une petite partie de ce dont PHPStan est capable. Dans cet article, nous apprendrons comment l'utiliser pour arrêter les régressions de mise à niveau.

Qu'est-ce qu'une régression de mise à niveau ?

Une régression de mise à niveau se produit lorsque vous disposez de fonctionnalités dans votre application dont vous souhaitez vous éloigner. Il peut s'agir de code dans votre application ou de code dans une dépendance que vous avez installée.

Souvent, lorsque nous essayons d'effectuer des mises à niveau, nous ne pouvons pas tout faire en une seule fois. Au lieu de cela, nous devons apporter de petits changements progressifs. De même, nous ne voulons pas que d’autres développeurs continuent à utiliser des méthodes et des propriétés obsolètes. Dans cette situation, ces nouveaux appels de méthode, etc. sont des régressions dans votre progression pour mettre à niveau votre application.

Installation de PHPStan et de l'extension Deprecation Rules

Pour commencer à lutter contre les régressions de mise à niveau, la première étape consiste à installer PHPStan si ce n’est pas déjà fait. Vous pouvez l'installer via Composer :

composer require --dev phpstan/phpstan

Ensuite, vous souhaiterez ajouter l'extension Deprecation Rules, qui permet spécifiquement de suivre l'utilisation des méthodes, propriétés et classes obsolètes dans votre base de code :

composer require --dev phpstan/phpstan-deprecation-rules

Une fois installé, vous pouvez configurer PHPStan pour utiliser les règles de dépréciation en l'ajoutant à votre fichier de configuration phpstan.neon :

includes:
    - vendor/phpstan/phpstan-deprecation-rules/rules.neon

L'exécution de PHPStan avec cette configuration signalera désormais toutes les méthodes, propriétés ou classes obsolètes dans votre base de code. Il s'agit d'une étape essentielle pour éviter les régressions de mise à niveau, car vous serez averti lorsque du code obsolète est utilisé. Vous pouvez ensuite refactoriser ces instances pour vous assurer que votre application évolue vers des fonctionnalités plus récentes et prises en charge.

Allez plus loin avec l'extension Appels refusés

Alors que l'extension Deprecation Rules détecte le code obsolète, l'extension Appels interdits offre un moyen de bloquer des appels de fonction spécifiques, des appels de méthode ou même des classes entières que vous ne souhaitez plus autoriser dans votre base de code. Ceci est particulièrement utile pour un contrôle plus précis de votre code, tel que le code qui n'a pas d'avertissement de dépréciation.

composer require --dev spaze/phpstan-disallowed-calls

Après l'installation, vous devrez le configurer dans votre fichier phpstan.neon. Voici un exemple de la façon dont vous pouvez interdire certains appels de méthodes ou fonctions :

includes:
    - vendor/phpstan/phpstan-deprecation-rules/rules.neon
    # add the extension
    - vendor/spaze/phpstan-disallowed-calls/extension.neon

parameters:
    # You can see more example at https://github.com/spaze/phpstan-disallowed-calls/blob/main/docs/custom-rules.md
    disallowedMethodCalls:
        -
            method: 'PotentiallyDangerous\Logger::log()' # `function` is an alias of `method`
            message: 'use our own logger instead'
            errorTip: 'see https://our-docs.example/logging on how logging should be used'Begin writing your own rules
    disallowedFunctionCalls:
        -
            function: 'var_dump()' # `method` is an alias of `function`
            message: 'use logger instead'

Cette extension est assez complète, ce qui signifie que vous pourrez couvrir la majorité des scénarios. Bien sûr, il peut y avoir des situations qui ne fonctionnent pas et pour cela, le mieux est de commencer à apprendre à écrire vos propres règles.

C'est quelque chose que nous aborderons dans un autre article.

Conclusion

Utiliser PHPStan pour détecter les régressions de mise à niveau est un moyen intelligent de faciliter le processus de mise à niveau, en particulier dans les grandes équipes de développement. Appliquer PHPStan à votre configuration d'intégration continue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn