====== 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