====== Xdebug Profiler installieren ======
Der Profiler zeigt auf, bei welchen Aufrufen die meiste Performance verloren geht.
===== 1. Xdebug Helper by JetBrains installieren =====
Um in Google Chrome steuern zu können, ob der Debugger oder der Profiler aktiv sein soll ist einmal die folgende Google Chrome-Erweiterung zu installieren:
[[https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm|Xdebug Helper by JetBrains]]
----
===== 2. xdebug-Verzeichnis anlegen =====
Über die Eingabeaufforderung CMD im Docker-Verzeichnis aufrufen und das neue Verzeichnis anlegen:
mkdir -p xdebug
CHMOD 777 xdebug
----
===== 3. xdebug.ini anpassen =====
Notwendige Anpassung der **xdebug.ini** (z. B. unter docker-dev-env\.docker\php-apache):
* der xdebug.mode muss um "profile" erweitert werden.
* output_dir definieren
* start_with_request auf "trigger" setzen
[xdebug]
xdebug.mode=develop,debug,profile
xdebug.output_dir=/tmp/xdebug
xdebug.start_with_request=trigger
----
===== 4. docker-compose.yml anpassen =====
Das unter Punkt 3 definierte Verzeichnis muss nun in den Volumes des jeweiligen Docker-Containers ergänzt werden:
volumes:
- ./xdebug:/tmp/xdebug
----
===== 5. Aufrufen =====
Um einen Aufruf einzuloggen muss die "Profilierung" in der Chrome-Erweiterung "Xdebug Helper by JetBrains" aktiviert werden.
----
===== 6. Debuggen mit Postman =====
Wenn der xdebug.start_with_request wie in Punkt 3 beschrieben auf "trigger" gesetzt wurde, muss in Postman ebenfalls der Cookie mitgesendet werden, damit PHP-STORM bei Breakpoints hält. Hierfür in Postmann rechts oben "Cookies" aufrufen und folgenden Cookie bei der Domain "localhost" hinzufügen:
XDEBUG_SESSION=PHP_STORM; Path=/; Expires=Fri, 31 Dec 2038 23:59:59 GMT;
----
===== Auswerten des Profilings =====
Die Auswertung kann in PHPStorm erfolgen.
"Tools" => "Analyze Xdebug Profiler Snapshot..." => cachegrind.out-Datei aus "xdebug"-Verzeichnis auswählen