PHP Laravel mit Visual Studio debuggen

Mit PHP Laravel gibt es ein tolles MVC-Framework mit einer sehr guten Dokumentation und einer riesigen Ökosystem.

Unter Windows ist das ganze ggf. etwas umständlicher zu installieren und zum Debuggen.

Ich hatte folgende IDEs versucht:

Bei letzterem, also Visual Studio 2015 mit den PHP Tools for Visual Studio, bin ich schließlich hängen geblieben. Dort habe ich es geschafft, das ganze zum Laufen zu bringen.

Installation

  1. Visual Studio 2015 downloaden und installieren; die kostenlose Community-Edition ist hier vollkommen ausreichend.
  2. PHP Tools for Visual Studio downloaden und installieren (ich nutze die kommerzielle Version)
  3. Das Composer-Setup für Windows herunterladen und installieren.

Ich habe in Visual Studio dann noch ein Beispiel-Projekt in PHP erstellt (Nicht-Laravel), und dann über die Settings den automatischen Download und Installation von

  • PHP (7 und 5.6)
  • XDebug

ausgelöst. Die PHP Tools for Visual Studio starten dann automatisch diesen Platform Installer für IIS (oder wie das genau heißt) und installieren dann alles.

Vermutlich ist dann auch der Pfad zur PHP.EXE-Datei im Suchpfad (PATH-Variable). Falls nicht, selbst ergänzen. Bei mir ist der Pfad „C:\Program Files (x86)\iis express\PHP\v7.0“.

Zur Sicherheit gerne anschließend den PC neu booten, damit alle Pfade im Suchpfad sind, usw.

Tipp: Manchmal wird auch empfohlen, zusätzlich noch Node.js zu installieren, weil Larvel intern wohl Gulp verwendet, das intern auf Node.js setzt.

Tipp: Eine gute und ausführliche Installations-Anleitung, auch für Windows, ist in dem E-Buch „Laravel 5.1 Beauty“ (kostenpflichtig) enthalten.

Projekt erstellen auf Befehlszeile

Ich habe mich an die super Anleitung auf der Laravel-Dokumentations-Website gehalten.

Das findet alles auf der Befehlszeile, ohne GUI statt.

Die Schritte sind grob:

  1. Einen neuen Ordner irgendwo erstellen, z. B. „C:\Users\ukeim\PHPProjects“.
  2. In diesen Ordner wechseln.
  3. Dort composer global require "laravel/installer" ausführen.
  4. Ein neues Projekt anlegen, z. B. mit dem Namen „blog“: laravel new blog.

Projekt in Visual Studio erstellen

Anschließend habe ich in Visual Studio ein neues Projekt erstellt, über die Option File → New → Project from existing code:

  1. Projekt-Typ „PHP“.
  2. Beliebiger Name, z. B. gleich wie das Projekt, in meinem Beispiel also „blog“.
  3. Als Ordner den Pfad zum Projekt. In meinem Beispiel „C:\Users\ukeim\PHPProjects\blog“.

Projekt in Visual Studio konfigurieren

  1. Rechtsklick im „Solution Explorer“ auf das Projekt („blog“ in meinem Beispiel).
  2. Im erscheinenden Kontextmenü auf „Properties“ klicken.
  3. Dann unter „Application“ als „Web root“ den Wert „public“ eintragen. Der Grund ist, dass ein Laravel-Projekt immer im Ordner „public“ startet.
  4. Als „Language Level“ habe ich „PHP 5.6“ eingestellt. Vermutlich geht auch eine neuere, z. B. PHP 7.
  5. Unter „Start Action“ habe ich:
    1. „Specific page“ ausgewählt und als Wert „/“ eingetragen.
  6. Unter „Server“ habe ich:
    1. Als „Server“ habe ich „Built-in Web Server“ ausgewählt.
    2. „Auto-assign port“ ausgewählt.
    3. Als „Host name“ habe ich „localhost“ eingetragen.

Anschließend konnte ich in Visual Studio erfolgreich den Debugger starten und auch Haltepunkte setzen (in meinem Beispiel einen Haltepunkt direkt in „public/index.php“).

Artisan aufrufen

Anschließend kann ich artisan aus der Befehlszeile aus aufrufen, entsprechend im aktuellen Projekt-Root-Ordner.

Z. B.:

php artisan make:model Car --migration

Dass sollte dann laufen, weil alle Pfade durch die vorherigen Schritte im Suchpfad zu finden sind.

Projekt weitergeben

Soll später in einem XCOPY-verteilbaren Projekt Composer mitgegeben werden, kann von der Composer-Downloadseite die neueste composer.phar-Datei heruntergeladen werden und im Root des Projekts mitgegeben werden.

Ein Laravel-Projekt kann komplett via FTP-Filecopy weitergegeben werden. Eventuell müssen noch Berechtigungen auf Ordner via chmod gesetzt werden.


Tipp: Fehlermeldung in PHP-Installation beheben

Ich bekam die Fehlermeldung:

PHP Warning: PHP Startup: Unable to load dynamic library ‚C:\Program Files (x86)\iis express\PHP\v7.0\ext\php_mysql.dll‘ - Das angegebene Modul wurde nicht gefunden.

Das konnte ich beheben, indem ich in der PHP.ini-Datei die folgende Zeile auskommentiert habe:

;extension=php_mysql.dll

Tipp: Laravel-Views aus einem alternativen Ordner laden

In meinem Projekt wollte ich die Views aus einem alternativen Ordner zum Standard-Ordner „app\resources\views“ laden.

Auf Stack Overflow gibt es eine gute Beschreibung, wie das mit Laravel 5 geht. (Hier für Laravel 4).

Tipp: Nicht im „public“-Ordner sondern im Root-Ordner starten

Wenn Ihr alles aus dem Root-Ordner starten wollt, und nicht aus dem „public“-Ordner, dann ist das auch möglich.

Auf Stack Overflow steht wiederum, wie das geht.