- Checks for calls and instantiations of undeclared functions, methods, closures and classes
- Checks types of all arguments and return values to/from functions, closures and methods
- Supports
@param
,@return
,@var
and@deprecated
phpdoc comments including union and void/null types- Checks for Uniform Variable Syntax PHP 5 -> PHP 7 BC breaks
- Undefined variable tracking
- Supports namespaces, traits and variadics
- Generics (from phpdoc hints – int[], string[], UserObject[], etc.)
- Experimental dead code detection
Je me rappelle les bidouilles sur PHP_Code_Sniffer à SQLi à partir du tokenizer, et les essais d’analyse statique de Pascal sur les montées en version de PHP à TEA.
Là Phan semble un vrai outil, basé sur un AST natif au langage. Je suis certain qu’on n’en est qu’au début des possibilités offertes par l’AST de PHP 7. Rien que l’aide à la migration ne va pas être inutile.
J’ai un peu peur qu’on entre dans le monde Java, d’autant plus que les type hints sont maintenant la norme et que le langage se complexifie, mais pas mal de portes s’ouvrent en ce moment pour PHP, et c’est sacrément cool.
Laisser un commentaire