在VSCode

时间:2018-08-04 13:12:09

标签: php laravel visual-studio-code xdebug

有人成功配置VSCode来调试基于Laravel的网站吗?在阅读了许多文章和教程之后,我已经达到可以让VSCode“收听XDEBUG”的地步,但是我无法在 normal 风格的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框架类)。用名称空间来限定类名也没有用。

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

有人成功做到了,告诉我我在这里想念什么吗?

1 个答案:

答案 0 :(得分:5)

最后使它正常工作。这是其他人需要的东西。

  1. 确保已在Apache服务器上设置并运行XDEBUG。
  2. 为您喜欢的浏览器安装调试器扩展。扩展程序适用于Chrome,Edge和FireFox(可以从VSCode中搜索和安装)。
  3. 设置import org.apache.spark.sql.functions._ import org.apache.spark.sql.types.IntegerType var df=List[Tuple2[Integer,Integer]]((1,null),(null,2),(null,3)).toDF("name","rank") df.show +----+----+ |name|rank| +----+----+ | 1|null| |null| 2| |null| 3| +----+----+ val col=df.columns var dfArray=col.map(colmn=>df.select(lit(colmn).as("colName"),sum(when(df(colmn).isNull || df(colmn)==="" || df(colmn)==="-" || df(colmn).isNaN,1).otherwise(0)).as("missingValues"))) dfArray.tail.foldLeft(dfArray.head)((acc,itr)=>acc.union(itr)).show //output: +-------+-------------+ |colName|missingValues| +-------+-------------+ | name| 2| | rank| 1| +-------+-------------+ ,使其并行启动两个配置。这是通过所谓的化合物配置完成的。这是启动PHP + XDEBUG和EDGE浏览器的矿井:

    launch.json
  4. 根据您的本地设置(例如站点地址,xdebug端口等)更新上述配置。
  5. 按F5键,调试会话将开始。浏览器将自动启动,您将可以达到断点。