Debugging Improvements in PhpStorm 9

PhpStorm 9 brings you significantly redesigned debugging experience. We’ve already blogged about Inline Debugger and how all live debugging data are shown directly in the editor, with variable values integrated smoothly into the current editor’s look-and-feel. Today we’d like to talk about other improvements in debugging and debugging configuration validation workflows.

debug_new_intro

In short, an even more convenient Web Server Debug Validation is now available from the Run menu, providing additional information on possible debug configuration errors. Many configuration hints are provided as tooltips as well. php.ini can now be opened for editing from the settings. Finally, all the required assistance is provided to get the debugger up and running in a few minutes.

Let’s explore these changes in detail!

Web Server Debug Validation

Debugger Configuration Validation was introduced in PhpStorm 7 and is now getting a major update version 9. First of all, the validation action is moved from PHP | Servers settings/preferences to the Web Server Debug Validation action in the Run menu:

debug_new_1

Now there are two different options in this validation dialogue:

  • Local Web or Shared Folder validation (provide the local folder to create a validation script and the URL of the validation script)

debug_new_2

    • Remote Web Server validation (provide the path to create the validation script should be provided, and select the relevant deployment configuration)

debug_new_3

The validation process now provides much more information on the current configuration and any possible issues, including links on how to fix the problem (for both Xdebug and Zend Debugger).

Configuring PHP Interpreters

Additional information and actions are now available when configuring PHP interpreters in Settings / Preferences | Languages & Frameworks | PHP…. In addition to PHP version and Debugger information, the phpinfo button shows more complete information about environment you’re using. The configuration files (php.ini and others) used by the interpreter are now listed with an option to open them in the editor:

debug_new_4

Click the Open in Editor link to open the php.ini for editing in the editor:

debug_new_5PhpStorm also provides instructions on how to fix issues when no php.ini configuration is found.

Detecting a debugging misconfiguration

Debugging is a complicated process, so the IDE aims to help you with additional tips on what might go wrong (so that you don’t spend hours searching in the wrong place).

With this update, if you forget to put the breakpoint in your code or fail to enable Run | Break at first line in PHP scripts, PhpStorm will show a tooltip, informing you that there’s been an attempt to establish the debugging process but no breakpoint has been hit:

debug_new_9

Shared PHP Servers configuration

Now PHP Servers configuration in Settings / Preferences | Languages & Frameworks | PHP | Servers (together with path mappings) can be saved on the project level, to be shared with teammates or committed to your VCS. To take advantage of this new option, enable the Shared option in PHP Server configuration, next to the server name:

debug_new_6

Import from Deployment action

Path mappings in PHP Servers configuration do look very similar to the path mappings in Deployment configuration. Unfortunately, they cannot be reused, as Deployment configuration requires paths to be relative, and PHP Servers configuration relies on absolute paths.

Because of this, e.g. mounted folder deployment configuration doesn’t have a path to the mounted folder on the remote machine, only local mounted folder root path and relative path mappings. Moreover, FTP/SFTP/FTPS server deployment may be configured with access to the files under deployment root only.

A new Import from Deployment action dramatically eases the configuration of PHP Servers when you already have Deployment configured:

debug_new_7

This button is available in Settings / Preferences | Languages & Frameworks | PHP | Servers. It opens the Import from Deployment configuration dialogue, where you should  specify the path (remote path to the mounted folder or absolute path to the deployment root, depending on the deployment configuration):

debug_new_8

When a debugging connection is established with PhpStorm but no PHP server is configured, PhpStorm will offer to import mappings from deployment, trying to preselect the most suitable existing deployment server:

debug_new_11

Copy Value as…

Variable values in the Debug tool window can now be copied as print_r(), var_export() or json_encode(). Simply select Copy Value As… from the variable context menu:

debug_new_10

Download the latest PhpStorm 9 Public Preview and give the revised debugging workflow a go! Please share your thoughts, feature requests and issues through the issue tracker, by posting in the comments below, or in our forums!

Develop with pleasure!
– JetBrains PhpStorm Team

This entry was posted in Cool Feature, Early Access Program and tagged , , , , , . Bookmark the permalink.
  • Alex

    Sadly, when I upgraded to PhpStorm 9 the debugger stopped working. I use the same configuration as 8. When I switch to 8 the remote debug is perfect again.

    • Николай Селивёрстов

      I have the same issue.

      • Николай Селивёрстов

        Reinstalled PhpStorm 9 from scratch without import settings from 8. Debug window works now.

      • Николай Селивёрстов

        Found solution:
        1) Close PhpStorm
        2) Remove WebIde90/options/coustomization.xml
        3) run and then close(!) PhpStorm (to update preferences)
        4) run PhpStorm and work as usual

        drawback: toolbar buttons will be reset to defaults

  • Joe Bobson

    Is there support of Nette fw. in PhpStorm9 ?

  • richard

    phpstorm is ready for php 7