簡體   English   中英

使用PhpStorm和Xdebug調試Symfony REST API

[英]Debugging Symfony REST API using PhpStorm & Xdebug

我正在嘗試為PhpStorm安裝xdebug。

設置如下:

  • Symfony應用程序位於Docker容器內
  • 我正在將其用於REST API調用

到目前為止我嘗試過的是:

  • 已安裝的Xdebug- 參考

     RUN pecl install xdebug RUN docker-php-ext-enable xdebug 

並運行以下命令:

echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.idekey = PHPSTORM" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.default_enable = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_autostart = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_connect_back = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.profiler_enable = 0" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
echo "xdebug.remote_host = "docker.for.mac.host.internal"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

如下圖所示設置PhpStorm(除了端口是8090,因為我的Web應用程序在該端口上運行。我使用localhost:8090/在本地訪問網站):

在此處輸入圖片說明

現在,當我進行API調用時,什么也沒有發生。 它不會在斷點處停止。

有人幫助我嗎?

PS:我正在使用Xdebug Helper chrome插件。

這是我在Docker LAMP堆棧中使用的設置

https://github.com/delboy1978uk/lamp

xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp

xdebug.remote_port=9001
xdebug.remote_autostart=0

xdebug.remote_connect_back=1
xdebug.idekey="PHPSTORM"

xdebug.max_nesting_level = 250

我使用PHP-FPM,因此已經使用了端口9000,並將其更改為9001。嘗試一下,它應該可以工作!

我終於能夠在MacBook上運行它。 我使用Symfony4作為Rest API,它位於Symfony4容器和Apache服務器內部。

  1. dockerfile ,(確保將其放在文件的末尾,以免在運行composercli干擾)

     RUN yes | pecl install xdebug \\ && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_port = 9000" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_handler = "dbgp"" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_connect_back = 0" >> /usr/local/etc/php/conf.d/xdebug.ini \\ && echo "xdebug.remote_host = "host.docker.internal"" >> /usr/local/etc/php/conf.d/xdebug.ini 

    host.docker.internal適用於Mac和Windows。 更多信息

  2. 在主機上,打開PhpStorm

    • Preferences -> Languages & Frameworks -> PHP -> Debug -> DBGp Proxy

      IDE密鑰:XDEBUG_ECLIPSE主機:{{主機IP地址}}端口:9000

    • 轉到Preferences -> Languages & Frameworks -> PHP -> Servers

      點擊+ ,給它起一個名字,Host是the address on which your application is running (在我的情況下是localhost )和應用程序的端口號(我的應用程序是8090

      我無法弄清楚路徑映射應該是什么,因此我不會覆蓋這一部分。 如果不進行設置,則不會造成任何危害,但是會使您的應用程序減慢幾秒鍾。

      如果您無法找出映射,請確保取消選中Force break at first line when no mapping specifiedPreferences -> Languages & Frameworks -> PHP -> Debug找到Force break at first line when no mapping specified ”復選框。

  3. 安裝chrome插件Xdebug Helper ,然后按照此處提供的說明進行操作。

  4. 最后一步是在PhpStorm啟用監聽器。 Run -> Start Listening for PHP Debug Connections

  5. 通過設置斷點來進行調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM