I was able to set up a php web app debugger in PHPStorm by simply tying it to my localhost at a specific port and everything works fine. However for that to work I need to first run this command on the shell:
php app/console server:run --env=dev
This works just fine if I set up breakpoints for browsing the site itself or testing api calls from a browser based rest client like postman
However I’m trying to actually set breakpoints for my mobile app (the mobile app sends http calls to the backend app which is a symfony app). Using the web app configuration doesn’t work for this one.
Using this tutorial I was able to incorporate the above command line into PHPStorm, so now I can actually run the code using phpstorm command line tools.
My question is: How can I actually tie the debugger to the command line within PHPStorm? right now when I create a built-in web server in PHPStorm it defaults to using the default php interpreter (i.e If I run the code using the built in web server.. I see this in PHPStorm’s console:
/usr/local/Cellar/php54/5.4.28/bin/php -S localhost:8000 -t /project/root/directory
What I want instead is something like this:
php app/console server:run --env=dev -S localhost:8000 -t /project/root/directory
Any idea how to do that?
Advertisement
Answer
You shouldn’t create a run configuration at all, just to click on the listen button:
Configure xdebug to attempt to debug every single script (
xdebug.remote_autostart = 1
andxdebug.remote_enable = 1
).Use “Phone handle” icon in IDE to start listening for debug connections (e.g. as described in here)
Launch your php code from anywhere — XDebug will attempt to debug every incoming request.
Here is an hour long webinar about the subject.
bonus
if you’re interested in doing the same thing on vi + xdebug, see this answer.