Domanda

C'è un strumento di analisi statica per PHP file di origine?Il binario stesso possibile verificare la presenza di errori di sintassi, ma sto cercando qualcosa che fa più, come:

  • inutilizzati assegnazioni di variabili
  • le matrici che vengono assegnati in senza essere inizializzato prima
  • e, eventualmente, il codice di stile avvisi
  • ...
È stato utile?

Soluzione

Eseguire php in panno modalità riga di comando per convalidare la sintassi senza esecuzione:

php -l FILENAME

Di livello superiore analizzatori statici includono:

Di livello inferiore analizzatori sono:

Runtime analizzatori, che sono più utili per alcune cose a causa di PHPs natura dinamica, includono:

La documentazione biblioteche phpdoc e doxygen eseguire una sorta di analisi del codice.Doxygen, per esempio, può essere configurato per eseguire il rendering di eredità grafici con graphviz.

Un'altra opzione è xhprof, che è simile a xdebug, ma più leggero, che lo rende adatto per i server di produzione.Lo strumento include un PHP-based.

Altri suggerimenti

Online PHP lint

PHPLint

Unitialized variabili di controllo.Link 1 e 2 sembrano già per fare questo bene, però.

Non posso dire che ho utilizzato uno di questi intensamente, però :)

Per completezza -- controllare anche phpCallGraph.

PHP Pasticcio Rivelatore è impressionante e veloce.

Ho provato con $php -l e un paio di altri strumenti.Tuttavia il migliore nella mia esperienza (YMMV, naturalmente) è verificare di pfff set di strumenti.Ho sentito parlare di pfff su Quora (http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool)

È possibile la compilazione e l'installazione.Non ci sono bel pacchetti (sulla mia mint Debian, ho dovuto installare libpcre3-dev, ocaml, libcairo-dev, libgtk-3-dev e libgimp2.0-dev dipendenze primo) ma dovrebbe essere la pena di un intsall.

I risultati sono riportati come

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.

Vedere Semantica Disegni' CloneDR, un "clone" rilevazione strumento che trova il copia/incolla/modifica codice.Trova esatte e near miss frammenti di codice, nonostante gli spazi, commenti e anche variabile renamings.Un esempio di rapporto rilevamento per il PHP può essere trovato presso il sito.(Io sono l'autore).

NetBeans IDE controlli per gli errori di sintassi, unusued variabili e tali.Non è automatico, ma funziona bene per piccoli o medi progetti.

C'è un nuovo strumento chiamato nWire per PHP.Si tratta di un codice di esplorazione plugin per Eclipse PDT e Zend Studio 7.x.Esso consente in tempo reale di analisi del codice PHP e fornisce i seguenti strumenti:

  • Codice di visualizzazione interattiva rappresentazione grafica dei componenti e delle associazioni.
  • Codice della navigazione - navigazione unico mostra tutte le associazioni e lavora con voi durante la scrittura o la lettura del codice.
  • Ricerca veloce ricerca durante la digitazione per i metodi, campi, file, etc.

PHP PMD (progetto pasticcio rivelatore) e PHP CPD (copia e incolla rivelatore) come la parte precedente di PHPUnit

C'è RIP - statica del codice sorgente, l'analizzatore di vulnerabilità in script PHP.Fonti di RIP disponibile SourceForge.

Da RIP sito:

RIP è un programma scritto in PHP per trovare le vulnerabilità in PHP applicazioni mediante analisi statica del codice.Con la creazione di token e l'analisi di tutti il file di codice sorgente RIP è in grado di trasformare il codice sorgente PHP in un modello di programma e di rilevare sensibili lavandini (potenzialmente vulnerabili funzioni) che può essere contaminato da userinput (influenzato da un malware utente) durante il flusso del programma.Inoltre l'output strutturato di trovare vulnerabilità RIP offre anche un sistema integrato di codice quadro di verifica per ulteriori analisi manuale.

Non c'è assolutamente nuovo strumento per l'analisi statica del codice chiamato PHP Analyzer.

Tra i molti tipi di analisi statica esso fornisce anche la base auto-fissaggio funzionalità, vedere documentazione.

AGGIORNAMENTO:PHP-Analyzer è sconsigliato progetto, ma è ancora possibile accedervi in eredità ramo

Puoi provare a compilare con Facebook dell'hip-hop.

Si fa un analisi statica sull'intero progetto, e può essere quello che stai cercando.

https://github.com/facebook/hiphop-php

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top