OK, also führt PHPStorm Code auf meinem Rechner aus der Ferne aus. Ich kann das debuggen.
Es stellt sich heraus, dass PHPStorm die Datei wie erwartet über SFTP auf meinen Computer lädt, um eine Datei zu analysieren. Dann ruft es, wie erwartet, phpcs von SSH auf.
Was nicht erwartet wird ist, dass ich zwei Aufrufe sehe (eher würde ich zwei sehen, wenn der erste nicht abstürzt, siehe unten). Die erste versucht - Code Sniffer gegen eine Datei mit dem Namen „PHP Console“ zu laufen, das tut existiert und wird auf meinem Rechner hochgeladen, es sei denn es Null - Bytes in der Länge (und nicht deshalb grundlegende PHPCS Validierung, es nicht einmal kurz - Tags) .
Dann ruft PHPStorm phpcs ohne Anführungszeichen auf, fragt also nach
...phpcs PHP Console --format=XML etc.
und natürlich versucht phpcs eine Datei namens "PHP" zu öffnen und schlägt fehl. Daher zeigt es einen Fehler an und stoppt. Nie wird die echte Datei, an der ich schnüffeln möchte, entdeckt.
Auflösung
Ich habe eine andere Binärdatei vorbereitet, die phpcs aufruft, und es genannt /usr/local/bin/phpcs-phpstorm
:
#!/bin/sh if [ "PHP" = "$1" ]; then # Output a PHPCS message saying "This file is OK, go on." cat <<-HERE <?xml version="1.0" encoding="UTF-8"?> <phpcs version="2.7.0"></phpcs> HERE exit 0 fi # Launch the true phpcs. And since we're here, use also my own standard. # (I need to find out how to update PHPCS smell sets in PHPStorm) /usr/bin/phpcs --standard=/home/lserni/phpstorm-phpcs-ruleset.xml $*
Ich sagte dann PHPStorm, dass mein Remote PHPCS angerufen wurde /usr/local/bin/phpcs-phpstorm
.
Auf diese Weise werden zwei Instanzen von phpcs gestartet - die erste meldet keinen Fehler und wird sofort beendet, und an diesem Punkt wird die zweite phpcs gegen die auf dem Computer kopierte echte PHP-Datei gestartet. Die Zeit, die der erste Durchlauf benötigt, ist vernachlässigbar, da die eigentliche phpcs nicht einmal geladen wird.
Nicht elegant, aber was auch immer funktioniert.