【问题标题】:Debugging Laravel application on VSCode在 VSCode 上调试 Laravel 应用程序
【发布时间】:2019-01-12 03:12:43
【问题描述】:

有没有人成功配置 VSCode 来调试基于 Laravel 的网站?在阅读了大量的文章和教程之后,我已经达到了可以让 VSCode “监听 XDEBUG”的地步,但是我无法进行 正常 VS 风格的调试只需按 F5 即可在我最喜欢的浏览器中启动当前网站,当它遇到断点时会中断 VSCode,就像我们在完整的 Visual Studio 或 Eclipse 中所做的那样。

我的机器上正确设置了以下内容:

  • VSCode 1.25.1
  • XAMPP 1.8
  • XDEBUG(已配置并正常工作)
  • VSCode 的 PHP 调试扩展

我不确定我需要在launch.json 中使用什么启动配置。 PHP Debug 扩展自带的两个配置如下:

{
    "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
}           

虽然第一个配置正常工作(我可以在 VSCode 中以该模式开始调试,然后在浏览器中单独启动我的网站并遇到断点),但第二个配置失败。它告诉我它找不到 Controller 类(这是一个 Laravel 框架类)。使用命名空间限定类名也没有任何好处。

我的猜测是,这与启动配置的设置方式有关。它尝试将活动脚本作为独立单元启动,因此无法找到位于不同文件中的框架类的定义。我们必须以某种方式将网站作为单个应用程序启动。

有没有人成功做到这一点并告诉我我在这里缺少什么?

【问题讨论】:

  • "第二次配置失败,告诉我找不到Controller类..."嗯...当然会失败。您正在尝试直接执行您的控制器(或您正在处理的任何其他当前类)......同时绕过整个框架加载过程(换句话说,它不是通过标准index.php处理的)和没有作曲家的自动加载器。如果你想从 VSCode 启动整个事情(调试器 + 在浏览器中打开 URL).. 你将不得不在你的 Launch 配置中硬编码你的 URL(如果可能的话,当然)

标签: php laravel visual-studio-code xdebug


【解决方案1】:

终于搞定了。如果其他人需要的话,这里有。

  1. 确保您的 Apache 服务器上有 XDEBUG set up and running

  2. 为您喜欢的浏览器安装调试器扩展。扩展程序适用于 Chrome、Edge 和 FireFox(可以在 VSCode 中搜索和安装)。

  3. 设置launch.json 使其并行启动两个配置。这是通过所谓的复合配置完成的。这是我的启动 PHP + XDEBUG 和 EDGE 浏览器:

     {
         "version": "0.2.0",
         "compounds": [
             {
                 "name": "Launch & Debug",
                 "configurations": [ "Launch Program", "Launch localhost" ]
             }
     ],
     "configurations": [
         {
             "type": "php",
             "request": "launch",
             "name": "Launch Program",
             "cwd": "${workspaceRoot}",
             "port": 9000
         },
         {
             "name": "Launch localhost",
                 "type": "edge",
                 "request": "launch",
                 "url": "http://localhost/public",
                 "webRoot": "${workspaceRoot}"
             }
         ]
     }
    
  4. 根据您的本地设置更新上述配置,例如站点地址、xdebug 端口等。

  5. 按 F5,您的调试会话将开始。浏览器将自动启动,您将能够点击断点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 2016-07-06
    • 1970-01-01
    • 2018-09-05
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多