76

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

4

11 回答 11

55

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

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

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

截图:在 VSCode 中使用 vscode-php-debug 扩展进行 PHP 调试

在 VSCode 中安装很简单:使用 F1 调用命令行,然后键入ext install php-debug

于 2016-01-01T19:24:45.687 回答
25

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

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


更新:

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

于 2015-04-30T07:02:27.033 回答
15

现在有一个在 Visual Studio Code 中配置 PHP 调试的便捷指南,位于http://blogs.msdn.com/b/nicktrog/archive/2016/02/11/configuring-visual-studio-code-for-php-development .aspx

从链接,步骤是:

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

请注意,链接文章中有特定的详细信息,包括 VS Code 用户配置的 PHP 值等。

于 2016-03-13T23:07:59.300 回答
12

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

使用构建任务

首先打开命令面板(在 Windows 中是++ CtrlShiftP⌘</kbd>+Shift+P in Mac), and select "Tasks:Open User Tasks". Now copy my configuration below into your tasks.json file. This creates user-level tasks which can be used any time and in any workspace.

{
    "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 文件,请打开命令面板并选择“任务:运行任务”,然后选择“在终端中运行”。

如果您想在响应网络浏览器的网络服务器上运行代码,请打开命令面板并选择“任务:运行任务”,然后选择“启动服务器”以运行 PHP 的内置服务器,然后选择“在浏览器中运行” " 从浏览器运行当前打开的文件。

请注意,如果您已经有一个网络服务器正在运行,您可以删除该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 终端中显示输出。

于 2018-06-07T07:59:11.770 回答
11

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

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

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

于 2017-11-17T05:59:44.943 回答
3

他们已经足够帮助完整的答案,但是如果您想查看该过程,那么
[单击此处]

简短的步骤

[好走]

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

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

于 2017-02-06T09:12:09.653 回答
3

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

问题在这里解释

于 2017-05-12T10:42:02.613 回答
1

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

sudo apt-get install php-xdebug

您可以在此处找到完整的配置过程。

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

并使用php-debug扩展在 VS-code 中开始调试。

如何为 xdebug 配置 php-debug

于 2016-12-22T13:48:44.483 回答
1

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

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

您可以按照 vscode 官方指南轻轻地完成第 1 步和第 2 步。强烈建议使用XDebug 安装向导来验证您的 XDebug 配置。

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

于 2017-08-29T16:28:52.480 回答
0

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

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

在此处输入图像描述

然后到File>Preferences>Keyboard Shortcuts并单击右上角的以下图标:

在此处输入图像描述

它会打开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 的“when”子句

从这里查看完整的设置文档

就是这样,我希望它有所帮助。

于 2019-12-11T22:37:56.747 回答
0

XDebug changed some configuration settings.

Old settings:

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

New settings:

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

So you should paste the latter in php.ini file. More info: XDebug Changed Configuration Settings

于 2020-12-10T18:01:03.773 回答