VSCode php.exe in php.validate.executablePath?

Geeky26

Commander
Registriert
Jan. 2015
Beiträge
2.057
Normalerweise verwende ich SublimeText ich möchte aber gerne das kostenlose VSCode ausprobieren.

Ich habe php runtergeladen und einen Ordner "PHP" im Ordner "VSCode" erstellt.
In settings.json schreibe ich dann
"php.validate.executablePath": "${execPath}\\..\\PHP\\php.exe",
${execPath} gibt wohl den kompletten Pfad mit Dateiname (Code.exe) von VSCode zurück. Daher soll man \\.. verwenden, um nur den Pfad zu erhalten.

Bei jedem Start kommt eine Fehlermeldung, das php.exe nicht gefunden werden kann. Was mache ich falsch?
 
Servus, du willst ja was lernen...

beliebte Problemquellen: Umlaute, Leerzeichen, Groß & Kleinschreibung

Ergo machs doch erstmal voll Qualifiziert (ich denke du kommst im falschen Ordner raus) - könntest du mit dem Procmon sehen wo um dann die Löung zu finden

Ich als nicht VSCODE/PHPONKEL . denke sofort, ${execPath} gehört nicht in die mit " eingeschlossene Zeichenkette ... muss aber mutmasslich so sein
 
Dieses Plugin habe ich ja installiert und in der php.validate.executablePath muss man dann zur php.exe zeigen.
Das alles hätte ich aber gerne mit einem relativen Pfad oder mit Platzhaltern wie ${execPath}.
 
Warum relativer Pfad? Ich empfehle PHP an einen Ort außerhalb von code zu "installieren" - dort wo auch sublime oder andere auf PHP zugreifen.
Diesen Pfad kannst dann einfach absolut einstellen. Bei anderen Sprachen kenne ich dass de Installer eine Umgebungsvariable setzt wie "PYTHON_PATH", den kann man dann in Pfaden benutzen "%PYTHONPATH%/bin/python.exe.

Ich kenne mich leider mit PHP nicht so aus (ist 20 Jahre her) - es läuft aber oft ähnlich.
 
Absolute Pfade möchte ich nicht. Ich habe alle meine Programme auf einer externen Festplatte.
 
Bedeuten die ".." nicht, dass du in das Verzeichnis vor VSCode springst? Also wenn VSCode in G:\VSCode liegt müsste PHP in G:\PHP liegen?
 
Laut StackOverflow soll das nur das Code.exe vom Pfad entfernen.
 
Also zwei Punkte zwischen Verzeichnistrennzeichen in Pfadangaben stehen eigentlich dafür, dass an der Stelle vom Pfad in der Verzeichnishierarchie eine Ebene nach oben gegangen wird.
 
Das ist klar. Ich mache nur, was bei SO steht aber vollkommen egal was ich mache, die php.exe wird nicht gefunden.
 
Zuletzt bearbeitet:
isiprimax schrieb:
Bedeuten die ".." nicht, dass du in das Verzeichnis vor VSCode springst?
Geeky26 schrieb:
Laut StackOverflow soll das nur das Code.exe vom Pfad entfernen.
Leute, probiert sowas halt einfach kurz aus...nicht glauben, wissen:

Pwsh:
1713726926195.png



Cmd.exe:
1713727013810.png


Powershell:
1713727327682.png


Leider ist der Code vom Plugin scheinbar nicht Open Source, zumindest nix auf die Schnelle gefunden?
Zumindest steht hier in den Verlinkten Docs was von "Full Path" was man als absoluten Pfad interpretieren könnte: https://github.com/DEVSENSE/phptool...6480/docs/vscode/configuration.md?plain=1#L18

Ich weiß, ist eine als legacy deklarierte Option, könnte aber natürlich immer noch so sein und somit resolved das Plugin halt vielleicht einfach keine relativen Pfade.
 
Bitopium schrieb:
Ich weiß, ist eine als legacy deklarierte Option, könnte aber natürlich immer noch so sein und somit resolved das Plugin halt vielleicht einfach keine relativen Pfade.
Aber wieso funktioniert dann ${execPath}\\..\\PHP\\php.exe nicht?

P:\VSCode\Code.exe\PHP\php.exe
müsste dann werden zu
P:\VSCode\Code\PHP\php.exe
 
Geeky26 schrieb:
dann werden zu
P:\VSCode\Code\PHP\php.exe
Ne zu P:\VSCode\PHP\php.exe.

Geeky26 schrieb:
Aber wieso funktioniert dann ${execPath}\\..\\PHP\\php.exe nicht?
Naja schrieb ich doch. Wenn das Plugin damit nicht umgehen kann dann konvertiert es das halt nicht zum absoluten Pfad und da kracht es halt dann irgendwo in der Kette. Aber sehen ja leider den Code nicht. Bin mir auch nicht sicher wer dafür verantwortlich ist das execpath aufzulösen. Wenn das die Plugins machen müssen kann das natürlich auch schon das Problem sein.
 
Zuletzt bearbeitet:
Mein Rat:

  • Windows unterstützt Slashes (/) - nimm die anstatt backslashes (\)
  • Nimm statt den relativen Pfad einen absoluten, aber ohne Laufwerksbuchstaben, also /VSCode/PHP/php.exe statt irgendwas mit $execPath - das funktioniert dann auch auf der externen Festplatte, denn er geht von dem Laufwerk aus, auf dem sich das Programm befindet.
  • Falls das Problem damit nicht gelöst wird, schau dir mal die Logfiles von VSCode an, da sollte mehr drin stehen als "Pfad nicht gefunden"
 
  • Gefällt mir
Reaktionen: Bitopium
Zurück
Oben