Paulo
Paulo

Reputation: 617

Problem to configure Debugging PHP with Visual Studio Code

I'm trying configure XDebug on VS Code following this tutorial:

https://blogs.msdn.microsoft.com/nicktrog/2016/02/11/configuring-visual-studio-code-for-php-development/

but in this point:

enter image description here

The vs code not show the PHP option.

I tried reinstall VS Code and XDebug. I tried to reinstall the php server and change de PHP Server but nothing work.

I founded others tutorials but show-me the same problem: When i click on gear just show the launch.json without php option

enter image description here

Upvotes: 3

Views: 3269

Answers (2)

Diana
Diana

Reputation: 274

I had the same problem. Solved like this: i upgraded to the lastest version of ddev , I also deleted my vscode configuration file and remade it. IT WORKS NOW

Upvotes: 0

Script47
Script47

Reputation: 14540

For myself, the gear icon did nothing too, so to generate the required PHP configuration I toggled the drop down and clicked Add Configuration and it setup two PHP configurations in launch.json:

{
    "name": "Listen for XDebug",
    "type": "php",
    "request": "launch",
    "port": 9000
},
{
    "name": "Launch currently open script",
    "type": "php",
    "request": "launch",
    "program": "${file}",
    "cwd": "${fileDirname}",
    "port": 9000
}

Both of those two configuration are the sames ones that would've been generated by clicking the gear icon (had it worked) as is confirmed by the PHP Debug extension documentation:

Listen for XDebug

Listen for XDebug This setting will simply start listening on the specified port (by default 9000) for XDebug. If you configured XDebug like recommended above, everytime you make a request with a browser to your webserver or launch a CLI script XDebug will connect and you can stop on breakpoints, exceptions etc.

Launch currently open script

Launch currently open script This setting is an example of CLI debugging. It will launch the currently opened script as a CLI, show all stdout/stderr output in the debug console and end the debug session once the script exits.

Secondly, ensure that you have setup the PHP Debug extension correctly as per the instructions:

This extension is a debug adapter between VS Code and XDebug by Derick Rethan. XDebug is a PHP extension (a .so file on Linux and a .dll on Windows) that needs to be installed on your server.

Install XDebug I highly recommend you make a simple test.php file, put a phpinfo(); statement in there, then copy the output and paste it into the XDebug installation wizard. It will analyze it and give you tailored installation instructions for your environment. In short:

On Windows: Download the appropiate precompiled DLL for your PHP version, architecture (64/32 Bit), thread safety (TS/NTS) and Visual Studio compiler version and place it in your PHP extension folder. On Linux: Either download the source code as a tarball or clone it with git, then compile it. Configure PHP to use XDebug by adding zend_extension=path/to/xdebug to your php.ini. The path of your php.ini is shown in your phpinfo() output under "Loaded Configuration File".

Enable remote debugging in your php.ini:

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

There are other ways to tell XDebug to connect to a remote debugger than remote_autostart, like cookies, query parameters or browser extensions. I recommend remote_autostart because it "just works". There are also a variety of other options, like the port (by default 9000), please see the XDebug documentation on remote debugging for more information.

If you are doing web development, don't forget to restart your webserver to reload the settings.

Verify your installation by checking your phpinfo() output for an XDebug section.

Upvotes: 5

Related Questions