abbood abbood - 1 year ago 74
PHP Question

How to debug in PHPStorm with built in webserver using Symfony command line tool

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?

Answer Source

You shouldn't create a run configuration at all, just to click on the listen button:

  1. Configure xdebug to attempt to debug every single script (xdebug.remote_autostart = 1 and xdebug.remote_enable = 1).

  2. Use "Phone handle" icon in IDE to start listening for debug connections (e.g. as described in here)

  3. Launch your php code from anywhere -- XDebug will attempt to debug every incoming request.

Here is an hour long webinar about the subject.