URL:
https://linuxfr.org/news/phpstan-est-sorti-en-version-1-0
Title: PHPStan est sorti en version 1.0
Authors: windu.2b
Xavier Claude, Benoît Sibaud, Ysabeau, palm123, bobble bubble et tisaac
Date: 2021-11-02T11:09:38+01:00
License: CC By-SA
Tags:
Score: 5
PHPStan, un outil d’analyse statique de code PHP, vient de sortir en version 1.0. Pour l’occasion, un nouveau niveau de criticité a été créé.
----
[Site officiel](
https://phpstan.org/)
[Dépôt Github](
https://github.com/phpstan/phpstan)
[L'annonce officielle](
https://phpstan.org/blog/phpstan-1-0-released)
[Larastan passe aussi en version 1.0](
https://laravel-news.com/larastan-v1-released)
----
PHPStan est une bibliothèque en PHP permettant de faire de l’analyse statique de code PHP. Elle permet de détecter des erreurs dans du code, sans avoir besoin de l’exécuter (à la différence des outils de débogage ou de profiling, qui se base sur une vraie exécution du code). Créée il y a 6 ans, PHPStan est devenu depuis un outil de référence pour ceux qui souhaitent surveiller la qualité de leur code.
Pour rappel, les niveaux de criticité couvrent les cas suivants ([tirés de la documentation officielle](
https://phpstan.org/user-guide/rule-levels)) :
- 0 : vérifications basiques, classes ou fonctions inconnues, méthodes inconnues appelées par `$this`, nombre d’arguments passés pour ces méthodes ou fonctions incorrect, variables jamais définies
- 1 : variables potentiellement non définies, [méthodes magiques](
https://www.php.net/manual/fr/language.oop5.magic.php) et propriétés sur des classes avec `__call` et `__get`
- 2 : méthodes inconnues vérifiées sur toutes les expressions (pas seulement sur `$this`), validation de PHPDocs
- 3 : types de retour, types assignés à des propriétés
- 4 : vérification basique de code inutilisé - `instanceof` toujours à « false » et autres vérifications de type, branches `else` inutilisées, code injoignable après un `return;`, etc.
- 5 : vérification du type des arguments passés aux méthodes et aux fonctions
- 6 : reporter les indices de type
- 7 : reporter les types d’union en partie erronées - Si vous appelez une méthode qui existe seulement pour certains types dans un type d’union le niveau 7 commence à vous en informer; autres situations potentiellement incorrectes
- 8 : reporter les méthodes d’appel et les propriétés d’accès sur des types nullable
- 9 : être strict sur le type `mixed` type - la seule opération que vous pouvez faire ce type est de le passer vers un autre type `mixed`
C’est ce niveau 9 qui a donc été ajouté, avec la version 1.0 : il permet de limiter l’usage du type `mixed` (un type indiquant que le retour d’une fonction peut être de différents types).
Goodies from Bleeding Edge
--------------------------
Pour fêter la sortie de cette première version stable, [l’équipe propose quelques produits dérivés (t-shirts et badges)](
https://phpstan.org/merch).
Larastan aussi est en version 1.0
---------------------------------
[Larastan](
https://github.com/nunomaduro/larastan), un wrapper autour de PHPStan spécifiquement développé pour le framework [Laravel](
https://fr.m.wikipedia.org/wiki/Laravel) passe lui aussi en version 1.0.
Et vous, vous en êtes à quel niveau ?