在VSCode上调试Laravel应用程序

问题描述 投票:1回答:1

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

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

  • VSCode 1.25.1
  • XAMPP 1.8
  • XDEBUG(配置和工作)
  • VSCode的PHP Debug扩展

我不确定在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框架类)。使用命名空间限定类名也没有任何好处。

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

有没有人成功地完成了这件事并告诉我我在这里缺少什么?

php laravel visual-studio-code xdebug
1个回答
6
投票

终于搞定了。以下是其他人需要的东西。

  1. 确保在Apache服务器上设置并运行XDEBUG。
  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,您的调试会话将启动。浏览器将自动启动,您将能够达到断点。
© www.soinside.com 2019 - 2024. All rights reserved.