Why do I need to install the browser extension?
With VVV I just need to have xDebug enabled (manually, via “vagrant ssh” and then “xdebug_on” or automatically), start the listener in the IDE, and I’m good: no browser extensions required.
With the extension, we need an additional click which can be easily avoided.
Profiling and debugging is disabled by default for performance reasons. The browser extensions (or links from IDEs like PhpStorm) simply set a cookie that enables the debug/profile session.
Profiling and debugging is disabled by default for performance reasons.
For me, this is part of my daily work: most of the times, the debugger is enabled.
Anyway, if I have to use the cookie, how am I supposed to debug an external call which can’t provide that cookie?
Apparently, adding XDEBUG_SESSION_START=XDEBUG_ECLIPSE to the URL’s querystring, does not work.
As you can see, IntelliJ is configured to accept external requests and, to be safe, I even selected to stop at the first line in PHP scripts:
If you’re using PhpStorm then you can go to Settings » Add-ons and enable the IntelliJ IDE + Xdebug add-on.
Once it’s enabled you can go to to the specific site in Local, then Utilities, and click the Xdebug button. This will create a run configuration to debug that specific site. The config will be in the public/.idea directory so you’ll need to use “public” as the project directory. Then, if you go to “Run” you should see “Local by Flywheel”
If you would like to change how Xdebug behaves entirely, you edit /conf/php/VERSION/php.ini in the site’s folder.
I think it’s an overcomplicated process, but thank you for the explanation.
At this point, I’ll stick to VVV, where I can handle this with just one click in the IDE
I promise it’s easy with PhpStorm
We’ll put out a video tutorial for this at some point