Xdebug, PhpStorm und TYPO3

Um TYPO3 Seiten in PhpStorm zu debuggen kann XDebug verwendet werden.

Vorgehensweise

  1. Xdebug installieren
  2. php.ini anpassen und Webserver neu starten
  3. Anpassungen in PHPStorm
  4. Browser-Plugin installieren
  5. Testing


1. Xdebug installieren

Mittels “php --version” kann geprüft werden, ob Xdebug schon installiert ist (siehe 3.). 
Falls Xdebug nicht instaliert ist, kann folgender Befehl im Terminal verwendet werden, um Xdebug zu installieren.

pecl install xdebug for xdebug


2. php.ini anpassen und Webserver neu starten

Der Ort der php.ini kann ermittelt werden, indem im Terminal folgender Befehl ausgeführt wird:

php --ini

Für die aktuelle XDebug 3 Version folgende Einträge in der php.ini vornehmen.

[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

Für MAMP Installationen findet sich die xdebug.so für die php Version 8.1.13 im Regelfall hier:
zend_extension="/Applications/MAMP/bin/php/php8.1.13/lib/php/extensions/no-debug-non-zts-20210902/xdebug.so"

Nach der Anpassung der php.ini nicht vergessen den Webserver neu zu starten. 

Mit folgendem Befehl kann geprüft werden, ob Xdebug korrekt installiert ist

php --version

Die Xdebug Version sollt in der Ausgabe des Befehls erwähnt werden:

https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html


3. Anpassungen in PHPStorm

In PhpStorm (Version 2013.2.1) findet sich unter Settings der Menüpunkt PHP.
Hier bitte den korrekten CLI Interpreter angeben. Sollte er nicht ausgewählt werden können auf … am Ende von CLI Interpreter klicken und den korrekten Pfad zur ausführenden php Datei und zur php.ini angeben.

Für MAMP Installationen liegen diese hier für PHP 8.1.13 hier:

/Applications/MAMP/bin/php/php8.1.13/bin/php
/Applications/MAMP/bin/php/php8.1.13/conf/php.ini

Unter PhpStorm / Settings / PHP / Debug passen die Einstellungen normalerweise standardmäßig. Ggf. prüfen, ob unter Xdebug / Debug ports auch der Port 9003 (für Xdebug 3) und/oder der Port 9000 (für Xdebug 2) eingetragen ist. Es können beide Ports parallel eingetragen werden: 9003,9000.

Unter PhpStorm / Settings / Servers den entsprechenden Server eintragen. Sollten Symlinks verwendet werden, muss das Häkchen unter “Use path mappings” geklickt werden und die absoluten Pfade der Symlinks eingetragen werden. Allerdings habe ich damit immer Probleme, so dass ich empfehle keine Symlinks für die Entwicklungsinstanz zu verwenden.

Unter Run / Edit Configurations über das + Symbol eine neue PHP Remote Debug Configuration erstellen und ein Namen vergeben, sowie das Häkchen bei “Filter debug connection by IDE key” auwählen. Weiterhin unter IDE key (session id) PHPSTORM eintragen.


4. Browser-Plugin installieren

Für Chrome kann z.B. der Xdebug helper verwendet werden:
https://chromewebstore.google.com/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc


5. Testing

  1. Breakpoint im Code wählen bei einem Codeabschnitt, der sicher erreicht wird. Zum Testen am besten die index.php im Webroot verwenden. Wenn das klappt, können danach weitere Breakpoints in Controllern gesetzt werden.
  2. Run / Debug … im PhpStorm Menü auswählen und die zuvor angelegt Debug Configuration auwählen.
  3. Im Webbrowser mit aktiviertem Xdebug helper die Seite im Frontend aufrufen. Es kann nötig sein zuvor den Cache der Seite zu löschen.

zu 5.1.:

zu 5.2.:

zu 5.3.:


Erstellt am: (aktualisiert am: )