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

How to run or debug php on Visual Studio Code (VSCode)

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

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

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


更新:

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

调试 PHP 与 VSCode 使用 vscode-php-debug 扩展

VSCode 现在可以通过市场扩展 vscode-php-debug.

支持调试 PHP 个项目

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

从 VSCode 中直接安装:使用 F1 调用命令行,然后键入 ext install php-debug

http://blogs.msdn.com/b/nicktrog/archive/2016/02/11/configuring-visual-studio-code-for-php-development.aspx

Visual Studio 代码中现在有配置 PHP 调试的便捷指南

从link开始,步骤是:

  1. 下载并安装Visual Studio代码
  2. 在用户设置中配置 PHP linting
  3. 从 Visual Studio 市场
  4. 下载并安装 PHP 调试扩展
  5. 为 XDebug 配置 PHP 调试扩展

请注意,linked 文章中有具体细节,包括 VS Code 用户配置的 PHP 值等。

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

sudo apt-get install php-xdebug

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

如果您正在使用 windows,您可以从 xdebug.org 下载 xdebug。

并开始在带有 php-debug 扩展名的 VS-code 中进行调试。

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

简述步骤

[干得漂亮]

  1. 确保您已重新启动本地服务器

来源:https://www.youtube.com/watch?v=8MLEB1qx984

值得注意的是,您必须在 Visual Studio 代码中打开项目文件夹,调试器才能工作。在编辑器中只打开单个文件时,我花了几个小时让它工作。

问题解释here

要使用 vscode 调试 php,您需要这些东西:

  1. vscode 安装了 php 调试插件 (XDebug);
  2. php XDebug.so/XDebug.dll 下载并配置;
  3. 一个网络服务器,例如apache/nginx或者什么都没有(使用php内置服务器)

您可以按照 vscode 官方 guide.It 的方式逐步完成步骤 1 和 2,完全推荐使用 XDebug installation wizard 来验证您的 XDebug 配置。

如果你想在没有独立 web 服务器的情况下进行调试,php 内置可能是 choice.Start 内置服务器通过 php -S localhost:port -t path/to/your/project 命令,将你的项目目录设置为文档root.You可以参考this post了解更多详情。

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

  1. 安装 Code Runner Extension
  2. 在文本编辑器中打开 PHP 代码文件
    • 使用快捷方式Ctrl+Alt+N
    • 或按F1然后select/typeRun Code,
    • 或右键单击文本编辑器,然后单击编辑器上下文菜单中的Run Code
    • 或单击编辑器标题菜单中的Run Code按钮
    • 或单击文件资源管理器上下文菜单中的 Run Code 按钮

此外,您可以 select 部分 PHP 代码和 运行 代码片段。很方便!

如果你不想安装 xDebug 或其他扩展,只想 运行 a PHP 文件而不调试,您可以使用构建任务完成此操作。

使用构建任务(不需要扩展)

首先打开命令面板(Ctrl+Shift+P in Windows、+Shift+P 在 Mac) 和 select“任务:打开用户任务”。现在将我的配置复制到您的 tasks.json 文件中。这将创建可以在任何时间和任何工作空间中使用的用户级任务。

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

如果你想 运行 你的 php 文件在终端中,打开命令选项板和 select“任务:运行 任务”,然后是“运行 在终端中。

如果您想 运行 将您的代码放在响应网络浏览器的网络服务器上,请打开命令选项板和 select“任务:运行 任务”,然后是“启动服务器”到 运行 PHP 的内置服务器,然后“运行 在浏览器中”到 运行 当前从浏览器打开的文件。

请注意,如果您已经有一个网络服务器 运行ning,您可以删除 Start Server 任务并更新 localhost:8080 部分以指向您所在的任何 URL使用。

使用PHP调试

注意:这部分是我原来的回答。我最初认为它可以在没有 PHP Debug 的情况下工作,但看起来 PHP Debug 实际上在启动配置中公开了 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 代码中添加一个键绑定

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

然后进入文件>首选项>键盘快捷键并单击右上角的以下图标:

它将打开 keybindings.json 文件

添加以下设置

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

key是运行你的PHP文件的快捷方式(我用的是ctrl+s)你可以随便改

到运行不同文件类型的不同命令(我只为PHP文件设置)vscode's "when" clauses

请参阅 here

中的完整设置文档

就这些了,希望对你有帮助。

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