Composer in PhpStorm mit Docker Remote PHP Interpreter nutzen
PhpStorm erlaubt es bislang nicht, den PHP Dependency Manager Composer über einen “Remote PHP Interpreter” zu nutzen (https://youtrack.jetbrains.com/issue/WI-23544).
Das ist besonders dann bedauerlich, wenn man auf seinem Host-Rechner nicht die aktuellste PHP-Version installiert hat: Composer kann die Projektabhängigkeiten nicht installieren, wenn eines der zu installierenden Pakete Sprach-Features verwendet, welche der von Composer verwendete PHP-Interpreter nicht kennt.
Das Problem tritt in der Praxis u.a. dann auf, wenn man seine Anwendung in einem Docker-Container entwickelt und dennoch die Abhängigkeiten über PhpStorm installieren möchte statt dies auf der Kommandozeile im Docker-Container zu tun.
Meine Lösung ist, das Composer-Docker-Image mit dem folgenden Skript zu nutzen, das ich unter /usr/local/bin/composer-latest abgelegt habe:
tty= tty -s && tty=--tty docker run \ $tty \ --interactive \ --rm \ --user $(id -u):$(id -g) \ --volume /etc/passwd:/etc/passwd:ro \ --volume /etc/group:/etc/group:ro \ --volume $(pwd):/app \ composer "$@"
In den Einstellungen von PhpStorm kann dann unter Languages & Frameworks > PHP > Composer der Pfad zum Skript “/user/local/bin/composer-latest” als “composer executable” angegeben werden.
Das composer-Image kann ganz normal mit “docker pull composer” aktualisiert werden.
Diese einfache Lösung reicht, soweit keine besonderen PHP-Pakete benötigt werden.