Nachdem ich bereits ein paar Ext Coder per PN angeschrieben habe, auch mal hier ein paar Infos zu einem potentiellen neuen Tool für EC:
Es hat sich herausgestellt, das die Validatoren auch auf unbenutzte Variablen prüfen und so kam ich auf die Idee nach einem Analysetool zu suchen, dass diese Aufgabe beherrscht und in EC integriert werden kann. Nach längerer Suche habe ich dann "PHP_CodeSniffer VariableAnalysis" entdeckt und testweise in EC als zusätzliches Prüfmodul eingebaut. Dieses Tool hilft beim Aufspüren von unbenutzten und nicht-deklarierten Variablen sowie ein paar anderen Dingen hinsichtlich Variablen.
Die ersten Tests von Dr.Death und mir waren vielversprechend. Ich musste allerdings gleich den Ordner
language/
auf die Ignorier-Liste setzen, weil es sonst jede Menge false-positives hagelt. Auslöser dafür ist diese Code-Zeile die so in jeder Sprachdatei einer Ext vorkommt:
Grund: Bei dem genanten Problem erkennt VA schlicht nicht, dass die Variable
$lang
bereits in einer übergeordneten Instanz definiert wurde und meldet diese Variable fälschlicherweise mit
| WARNING | Variable $lang is undefined.
.
Speziell bei VariableAnalysis wird also der Ordner
language/
komplett ignoriert. Das ist aber kein Problem, weil EPV bereits eine recht umfangreiche Prüfung der Sprachdateien vornimmt. Von daher kann man das gut verschmerzen.
Des Weiteren ist die codetechnische Prüfung auf unbenutzte und nicht-deklarierte Variablen keine triviale Angelegenheit, ganz besonders bei Sprachen mit schwacher Typisierung wie PHP. Das heisst es gibt durchaus Situationen wo das Tool nicht alles entdeckt oder false-positives meldet.
Darum sollte man gerade bei VA dem Ergebnis nicht blind vertrauen, sondern sehr genau hinschauen. Trotzdem wäre VA unterm Strich eine sinnvolle und hilfreiche Ergänzung für EC. Dr.Death und ich konnten damit bereits einige unbenutzte Variablen aufspüren, die wir schlicht vergessen hatten. Ebenso nicht-deklarierte Variablen.
Wer mittesten will: auf der bekannten Seite von EC einfach
/dev
an die URL anhängen. Dort ist eine Testversion installiert, bei der nur VA aktiv ist, alle anderen Prüfmodule wurden deaktiviert, damit man zügig und zielgerichtet VA testen kann. Die Testversion von EC gibt sich mit der Version "v1.0.2dev" zu erkennen.