Sortie de PHPStan 1.0, un analyseur statique pour le code PHP

Après six ans de développement, la première version stable de PHPStan 1.0, un analyseur statique, est disponible. Il permet de détecter les erreurs dans le code PHP sans l'exécuter ni utiliser de tests unitaires. Le code du projet est écrit en PHP et distribué sous licence MIT.

L'analyseur fournit 10 niveaux de vérification, chaque niveau suivant étendant les capacités du précédent et fournissant des contrôles plus stricts :

  • Vérifications de base, détection de classes, fonctions et méthodes inconnues ($this), variables non définies et transmission d'un nombre incorrect d'arguments.
  • Identifier les variables potentiellement indéfinies, les méthodes magiques inconnues et les propriétés de classe avec __call et __get.
  • Identifie les méthodes inconnues dans toutes les expressions, sans se limiter aux appels via $this. Vérificateur PHPDocs.
  • Vérification des types de retour et attribution de types aux propriétés.
  • Détection de base du code « mort » (jamais appelé). Détection des appels instanceof qui renvoient systématiquement « false », des blocs « else » qui ne se déclenchent jamais et du code après les instructions return.
  • Vérification des types d'arguments passés aux méthodes et aux fonctions.
  • Avertissement concernant les annotations manquantes avec les informations de type.
  • Avertissement concernant les types d'union non valides qui définissent des collections de deux types ou plus.
  • Avertissement concernant l'appel de méthodes et l'accès aux propriétés avec des types nullables.
  • Vérification de l'utilisation du type « mixte ».

    Exemples de problèmes sous-jacents identifiés :

    • L'existence de classes utilisées dans instanceof, catch, typehints et d'autres constructions de langage.
    • L'existence et la disponibilité des méthodes et fonctions appelées, ainsi que le nombre d'arguments passés.
    • Vérifie si une méthode renvoie des données du même type que celles définies dans l'instruction de retour.
    • L'existence et la visibilité des propriétés auxquelles on accède, ainsi que la vérification des types de données déclarés et réels utilisés dans les propriétés.
    • Nombre correct de paramètres passés aux appels sprintf/printf dans le bloc au format chaîne.
    • Existence de variables prenant en compte les blocs formés par les opérateurs de branchement et les boucles.
    • Conversions de types inutiles (par exemple "(string) 'foo'") et vérifications strictes ("===" et "!==") sur des données avec différents types et opérandes qui renvoient toujours faux.

    Principales fonctionnalités de PHPStan 1.0 :

    • Le niveau de validation « 9 » a été implémenté. Il vérifie l'utilisation du type « mixte », conçu pour les fonctions acceptant des paramètres de types différents. Le niveau 9 détecte les utilisations non sécurisées du type « mixte », telles que le passage de valeurs de type « mixte » à un autre type, l'appel de méthodes de type « mixte » et l'accès à ses propriétés, car elles peuvent ne pas exister.
    • Contrôle de la vérification des valeurs de retour identiques pour les appels de fonction identiques à l'aide des annotations @phpstan-pure et @phpstan-impure.
    • Analyse de type dans les constructions try-catch-finally à l'aide des annotations @throws.
    • Identification des propriétés, méthodes et constantes internes (privées) définies mais inutilisées.
    • Transmission de rappels incompatibles aux fonctions de gestion de tableaux telles que array_map et usort.
    • Inspectez les types pour détecter les annotations typehint manquantes.
    • Les descriptions de type sont désormais compatibles avec PHPDocs, vous permettant d'utiliser les types des messages d'erreur dans PHPDocs.

    Source: opennet.ru

  • Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster