Phan – Static analy­zer for PHP


  • Checks for calls and instan­tia­tions of unde­cla­red func­tions, methods, closures and classes
  • Checks types of all argu­ments and return values to/from func­tions, closures and methods
  • Supports @param, @return, @var and @deprecated phpdoc comments inclu­ding union and void/null types
  • Checks for Uniform Variable Syntax PHP 5 -> PHP 7 BC breaks
  • Unde­fi­ned variable tracking
  • Supports names­paces, traits and varia­dics
  • Gene­rics (from phpdoc hints – int[], string[], UserObject[], etc.)
  • Expe­ri­men­tal dead code detec­tion

Je me rappelle les bidouilles sur PHP_Code_Snif­fer à SQLi à partir du toke­ni­zer, et les essais d’ana­lyse statique de Pascal sur les montées en version de PHP à TEA.

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 possi­bi­li­tés offertes par l’AST de PHP 7. Rien que l’aide à la migra­tion ne va pas être inutile.

J’ai un peu peur qu’on entre dans le monde Java, d’au­tant plus que les type hints sont main­te­nant la norme et que le langage se complexi­fie, mais pas mal de portes s’ouvrent en ce moment pour PHP, et c’est sacré­ment cool.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.