如何在Visual Studio代码(VSCode)上运行或调试php

时间:2015-04-30 06:56:18

标签: php debugging visual-studio-code

我找不到在Visual Studio代码上运行或调试php的方法,有谁知道怎么做?

11 个答案:

答案 0 :(得分:45)

使用vscode-php-debug扩展名

使用VSCode调试PHP

VSCode现在可以通过市场扩展vscode-php-debug支持调试PHP项目。

此扩展程序在后台使用XDebug,允许您使用断点,监视,堆栈跟踪等:

Screenshot: PHP Debugging in VSCode using vscode-php-debug extension

在VSCode中安装非常简单:用F1召唤命令行,然后输入ext install php-debug

答案 1 :(得分:15)

就我今天所读到的,你现在无法调试除node.js,JavaScript和TypeScript之外的任何东西,但是他们说他们想要添加你可以调试的新语言。编辑仍在开发中。不过,我不认为将来会有一个php调试器因为php是服务器端,所以你不能单独在你的客户端调试它。

如果你想调试php,我可以推荐xDebug

更新

现在,可以使用VS代码进行调试。您需要为VScode安装XDebugphp-debug扩展名。

答案 2 :(得分:15)

现在有一个方便的指南,用于在http://blogs.msdn.com/b/nicktrog/archive/2016/02/11/configuring-visual-studio-code-for-php-development.aspx

的Visual Studio代码中配置PHP调试

从链接中,步骤如下:

  1. 下载并安装Visual Studio代码
  2. 在用户设置中配置PHP linting
  3. 从Visual Studio Marketplace
  4. 下载并安装PHP Debug扩展
  5. 配置XDebug的PHP Debug扩展
  6. 请注意链接文章中有特定的详细信息,包括VS Code用户配置的PHP值,等等。

答案 3 :(得分:4)

实际上可以在没有xDebug的情况下运行 PHP并且无需安装任何其他扩展程序。

如果您只是想让PHP可执行文件评估PHP代码并在终端中显示输出(即不在浏览器中),那么您只需将以下配置复制到您的用户设置中:

{
    "launch": {
        "version": "0.2.0",
        "configurations": [
            {
            "type": "php",
            "request": "launch",
            "name": "Run using PHP executable",
            "program": "${file}",
            "runtimeExecutable": "/usr/bin/php"
            },
        ]
    },
    // all your other user settings...
}

这将创建一个可在任何PHP文件上使用的全局启动配置。请注意runtimeExecutable选项。您需要使用计算机上PHP可执行文件的路径更新它。复制上面的配置后,无论何时打开PHP文件,都可以按F5键运行PHP代码并将输出显示在vscode终端中。

另一方面,如果您想通过浏览器访问网络服务器来运行PHP,则需要通过创建build task进行设置。要创建任务,您需要处理工作区文件夹。打开工作区文件夹后,转到Tasks > Configure Tasks...,然后按Enter键,然后选择"其他"选项。这样做会在工作区文件夹中创建tasks.json文件。

现在将我的配置复制到您的tasks.json文件中:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Start Server",
            "type": "shell",
            "command": "php -S localhost:8080 -t ${workspaceFolder}",
            "isBackground": true,
            "group": "build",
            "problemMatcher": []
        },
        {
            "label": "Run In Browser",
            "type": "shell",
            "command": "open http://localhost:8080/${relativeFile}",
            "windows": {
                "command": "explorer 'http://localhost:8080/${relativeFile}'"
            },
            "group": "build",
            "problemMatcher": []
        }
    ]
}

现在,如果您的工作区中有一个PHP文件打开,您可以按Ctrl + Shift + B(在MacOS中⌘+ Shift + B),并且上述两个任务应该显示出来。选择Start Server以运行PHP的内置服务器,然后选择Run In Browser以从浏览器运行当前打开的文件(这假设您的工作区根目录也是您的文档根目录)。请注意,如果您已经运行了网络服务器,则可以删除Start Server任务并更新localhost:8080部分以指向您正在使用的网址。

答案 4 :(得分:3)

值得注意的是,必须在Visual Studio Code中打开项目文件夹才能使调试器正常工作。在编辑器中只打开了单独的文件时,我失去了几个小时才能使它工作。

问题解释here

答案 5 :(得分:1)

如果您使用的是Ubuntu 16.04和php7,可以使用以下命令安装xdebug:

sudo apt-get install php-xdebug

您可以找到完整的配置流程here

如果您使用的是Windows,可以从xdebug.org下载xdebug。

然后使用php-debug扩展名在VS代码中开始调试。

how to configure php-debug for xdebug

答案 6 :(得分:1)

他们已经足够帮助完整的答案,但如果你想看到这个过程,那么 [ click here ]

简短步骤

[很高兴]

  1. 确保您已重新启动本地服务器
  2. 来源:https://www.youtube.com/watch?v=8MLEB1qx984

答案 7 :(得分:1)

要使用vscode调试php,您需要以下内容:

  1. 安装了php debuge插件(XDebug)的vscode;
  2. php下载并配置了XDebug.so/XDebug.dll;
  3. 一个web服务器,例如apache / nginx或者什么都没有(使用php内置服务器)
  4. 您可以按照vscode官方指南轻轻浏览步骤1和2.完全建议使用XDebug installation wizard来验证您的XDebug配置。

    如果您想在没有独立Web服务器的情况下进行调试,可以选择php内置。通过php -S localhost:port -t path/to/your/project命令启动内置服务器,将项目目录设置为文档根目录。您可以参考{ {3}}了解更多详情。

答案 8 :(得分:1)

运行PHP有一种更简单的方法,无需配置:

  1. 安装Code Runner Extension
  2. 在文本编辑器中打开PHP代码文件
    • 使用快捷方式Ctrl+Alt+N
    • 或按F1,然后选择/输入Run Code
    • 或右键单击文本编辑器,然后在编辑器上下文菜单中单击Run Code
    • 或点击编辑器标题菜单中的Run Code按钮
    • 或点击文件浏览器
    • 的上下文菜单中的Run Code按钮
  3. 此外,您可以选择部分PHP代码并运行代码段。很方便!

答案 9 :(得分:0)

对我来说最好的解决方案是添加一个按键绑定,以直接在终端中运行PHP代码

为此,您只需要从VS代码扩展市场下载terminal-command-keys

enter image description here

然后转到文件>首选项>键盘快捷键,然后单击右上角的以下图标:

enter image description here

它将打开keybindings.json文件

添加以下设置

[
    {
        "key": "ctrl+s",
        "command":"terminalCommandKeys.run",
        "when": "editorLangId == php",
        "args": {
            "cmd":"php ${file}",
            "newTerminal":true,
            "saveAllfiles": true,
            "showTerminal": true,
        }
    }
]

是运行PHP文件的快捷方式(我使用ctrl + s),您可以根据需要进行更改

何时为不同的文件类型运行不同的命令(我仅将其设置为PHP文件)vscode's "when" clauses

请参阅here

中的完整设置文档

就是这样,希望对您有所帮助。

答案 10 :(得分:0)

XDebug更改了一些配置设置。

旧设置:

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000

新设置:

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9000

因此,您应该将后者粘贴到php.ini文件中。 更多信息:XDebug Changed Configuration Settings