Question Existe-t-il un analyseur de code statique [comme Lint] pour les fichiers PHP? [fermé]


Existe-t-il un analyseur de code statique pour les fichiers PHP? Le binaire lui-même peut vérifier les erreurs de syntaxe, mais je cherche quelque chose qui en fait plus, comme les affectations de variables inutilisées, les tableaux assignés sans être initialisés en premier, et éventuellement les avertissements de style de code. Les programmes open-source seraient préférés, mais nous pourrions convaincre l'entreprise de payer pour quelque chose si c'est fortement recommandé.


426
2017-12-18 19:39


origine


Réponses:


Exécutez php en mode lint à partir de la ligne de commande pour valider la syntaxe sans exécution:

  • php -l FILENAME

Les analyseurs statiques de niveau supérieur comprennent:

Les analyseurs de niveau inférieur comprennent:

Les analyseurs d'exécution, qui sont plus utiles pour certaines choses en raison de la nature dynamique des PPS, comprennent:

Les bibliothèques de documentation phpdoc et doxygen effectuer une sorte d'analyse de code. Doxygen, par exemple, peut être configuré pour rendre de beaux graphes d'héritage avec graphviz.

Une autre option est xhprof, qui est similaire à xdebug, mais plus léger, ce qui le rend approprié pour les serveurs de production. L'outil comprend une interface basée sur PHP.


326
2017-12-18 22:02



Mousse PHP en ligne

PHPLint

Vérification des variables unitialisées. Link 1 et 2 semblent déjà le faire très bien, cependant.

Je ne peux pas dire que je les ai utilisés intensivement, bien que :)


35
2017-12-18 19:48



Pour l'exhaustivité - vérifiez également phpCallGraph.


25
2017-12-19 11:29



Détecteur de mess PHP est génial et rapide.


22
2018-02-17 17:00



J'ai essayé d'utiliser $ php -l et de coupler d'autres outils. Cependant, le meilleur de mon expérience (YMMV, bien sûr) est scheck de l'ensemble d'outils pfff. J'ai entendu parler de pfff sur Quora (http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool)

Vous pouvez le compiler et l'installer. Il n'y a pas de paquets sympa (sur mon Debian, j'ai dû d'abord installer les dépendances de libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev et libgimp2.0-dev) mais cela devrait valoir le coup.

Les résultats sont rapportés comme

rjha@mint ~ $ ~/sw/pfff/scheck ~/code/github/sc/
login-now.php:7:4: CHECK: Unused Local variable $title
go-automatic.php:14:77: CHECK: Use of undeclared variable $goUrl.

15
2018-05-26 22:40



Voir CloneDR sur les conceptions sémantiques, un outil de "détection de clone" qui trouve le code de copier / coller / édité. Il trouvera des fragments de code exacts et quasi-manquants, en dépit des espaces, des commentaires et même des renomings de variables. Un exemple de rapport de détection pour PHP peut être trouvé sur le site. (Je suis l'auteur).


13
2018-03-07 07:05



L'EDI NetBeans vérifie les erreurs de syntaxe, les variables non utilisées et autres. Il n'est pas automatisé, mais fonctionne bien pour les projets de petite ou moyenne taille.


7
2017-09-02 08:32



Il y a un nouvel outil appelé nWire pour PHP. C'est un plugin d'exploration de code pour Eclipse PDT et Zend Studio 7.x. Il permet l'analyse de code en temps réel pour PHP et fournit les outils suivants:

  • Visualisation de code - représentation graphique interactive des composants et des associations.
  • Navigation de code - vue de navigation unique montre toutes les associations et travaille avec vous pendant que vous écrivez ou lisez du code.
  • Recherche rapide - effectuez une recherche au cours de la saisie des méthodes, champs, fichiers, etc.

6
2018-06-02 06:50



PHP PMD (détecteur de dégâts de projet) et PHP CPD (détecteur de pâte de copie) en tant que partie antérieure de PHPUnit


4
2018-01-09 22:45



Il y a RIPS - Un analyseur de code source statique pour les vulnérabilités dans les scripts PHP. Sources de RIPS disponibles à SourceForge.

Du site RIPS:

RIPS est un outil écrit en PHP pour trouver des vulnérabilités en PHP   applications utilisant l'analyse de code statique. En jetant un token et en analysant tous   fichiers de code source RIPS est capable de transformer le code source de PHP en   modèle de programme et à détecter les puits sensibles (potentiellement vulnérables   fonctions) qui peut être corrompu par userinput (influencé par un   utilisateur) pendant le déroulement du programme. Outre la sortie structurée de trouvé   vulnérabilités RIPS offre également un cadre d'audit de code intégré   pour une analyse manuelle supplémentaire.


4
2017-08-30 23:49