UPDATE DER FRAGE : Ich habe versehentlich die Versionsnummer für PHPStorm verwendet. Die korrekte Version ist 2017.1, nicht 2017.3, wie ursprünglich angegeben .
Ich habe kürzlich ein Update auf das neueste PHPStorm (2017.1 März) durchgeführt und PHPcs funktioniert nicht mehr. Stattdessen wird ein Fehler ausgegeben. Dies ist die PHPStorm-Version:
PhpStorm 2017.1
Build #PS-171.3780.104, built on March 21, 2017
JRE: 1.8.0_112-release-736-b13 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1
Ich erinnere mich, dass es im Januar 2017 einen ähnlichen Fehler gab, der dann im Februar behoben worden war.
Ich habe die Konfiguration bereits überprüft und sie ist in Ordnung und wird korrekt validiert. Anscheinend läuft der Remote-Code-Sniffer (Version 2.7.0 auf dem aktuellen Ubuntu 16.04-LTS) entweder nicht richtig oder wird mit den falschen Parametern aufgerufen (sieht wahrscheinlicher aus).
Der Fehler ist:
PHP Code Sniffer
phpcs: ERROR: The file "/home/lserni/.phpstorm_helpers/phpcs_temp.tmp/PHP" does not exist.
Usage: phpcs [-nwlsaepqvi] [-d key[=value]] [--colors] [--no-colors] [--stdin-path=<stdinPath>]
[--report=<report>] [--report-file=<reportFile>] [--report-<report>=<reportFile>] ...
[--report-width=<reportWidth>] [--generator=<generator>] [--tab-width=<tabWidth>]
[--severity=<severity>] [--error-severity=<severity>] [--warning-severity=<severity>]
[--runtime-set key value] [--config-set key value] [--config-delete key] [--config-show]
[--standard=<standard>] [--sniffs=<sniffs>] [--exclude=<sniffs>] [--encoding=<encoding>]
[--extensions=<extensions>] [--ignore=<patterns>] [--bootstrap=<bootstrap>]
[--file-list=<fileList>] <file> ...
Set
Ein erwartungsgemäßes Downgrade auf die Februar-Version behebt das Problem (dies war vor dem Upgrade nicht der Fall). Ich wollte aktualisieren, weil ich davon ausgehe, dass dies einen nervigen Fehler behebt , den ich nicht umgehen möchte .
Bevor ich einen Fehler einreiche - mit dem ich nicht allzu vertraut bin, da meine Konfiguration nicht sofort einsatzbereit ist - weiß jemand, woran es liegt, oder weiß jemand, woran es liegt? Die PHPStorm-Konfiguration war für die vorherige Version korrekt , aber es kann durchaus vorkommen, dass die vorherige Version mich mit etwas Dummheit davonkommen lässt, die ich mir ausgedacht habe , und mich jetzt mit der aktuellen Version beißt.
Antworten:
OK, PHPStorm führt Code auf meinem Computer aus der Ferne aus. Ich kann das debuggen.
Es stellt sich heraus, dass PHPStorm zur Analyse einer Datei die Datei erwartungsgemäß über SFTP auf meinen Computer hochlädt. Dann ruft es phpcs von SSH auf, ebenfalls wie erwartet.
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
und natürlich versucht phpcs, eine Datei mit dem Namen "PHP" zu öffnen, und schlägt fehl. Aus diesem Grund wird ein Fehler angezeigt und der Vorgang wird abgebrochen, und es wird nie mehr an der eigentlichen Datei gesniffen, die gesnifft werden soll.
Auflösung
Ich habe eine andere Binärdatei vorbereitet, die phpcs aufruft und es nennt
/usr/local/bin/phpcs-phpstorm
:Dann teilte ich PHPStorm mit, dass meine Remote-PHPCS aufgerufen wurde
/usr/local/bin/phpcs-phpstorm
.Auf diese Weise werden zwei phpcs-Instanzen gestartet - die erste meldet keinen Fehler und wird sofort beendet, und an diesem Punkt wird die zweite phpcs gegen die auf die Maschine kopierte echte PHP-Datei gestartet. Die Zeit, die der erste Lauf benötigt, ist vernachlässigbar, da die realen PhPCs noch nicht einmal geladen sind.
Nicht elegant, aber was auch immer funktioniert.
quelle