首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php文件中调试Javascript是可能的吗?

在php文件中调试Javascript是可能的吗?
EN

Stack Overflow用户
提问于 2018-10-21 08:33:02
回答 4查看 2.1K关注 0票数 3

我正在尝试找到在php文件中调试javascript代码的方法。我在php文件中嵌入了很多javascript代码。

在XDebug的帮助下,我可以使用netbeans调试php代码。我还可以在html或js文件中使用chrome或firefox等浏览器分别调试javascript。

我想要的是调试php文件中的javascript代码,如果可能的话。我相信很多人会使用嵌入php文件的javascript。我个人不喜欢它,但我必须继续努力。我知道我可以在js文件中单独编写代码,然后可以使用浏览器进行调试,但这是大量的代码,花时间进行分离。

如果可能的话,在座的任何人能给我一个建议吗?

在PHP项目中调试netbeans 7.4中的Javascript

https://netbeans.org/kb/docs/php/debugging.html

https://confluence.jetbrains.com/display/PhpStorm/Debugging+PHP+and+JavaScript+code+at+the+same+time+in+PhpStorm

https://blog.jetbrains.com/phpstorm/2014/06/debugging-php-and-javascript-code-at-the-same-time/

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-21 09:11:58

我甚至没有查过它,我认为它是不可行的(也不应该)。

原因如下:

你的PHP在服务器端被处理,这就是XDebug的作用,它允许你断点你所有的PHP代码。然后,服务器输出到达客户机,即实际的JS在解析后的HTML中以内联方式进行处理的时候。这意味着您必须以某种方式截取HTML,解析它,检测最终的内联JS脚本……并在此时设置断点(每次运行时都是),然后输出到客户端,客户端再次解析HTML以呈现它并处理最终的断点。我猜这将是一个乏味的过程,甚至更乏味的工作,这就是为什么甚至没有人尝试为它做一个扩展。

据我所知,内联JS也更难调试,我从来没有见过一个实际的设置,允许直接从IDE中断点静态HTML文档中的嵌入标记,这将比PHP中的断点JS更容易实现……

我想你最好的办法是将JS外部化到单独的文件中,并且只在PHP模板中使用硬代码,无论如何,从长远来看,使用起来确实会更舒服。

然后,您将能够断点中的所有内容

,再加上实际的前端架构,语法突出显示,给你的老板留下深刻印象,让你的生活变得更容易,世界变得更美好,等等。

另外,作为参考:

如何用Netbeans调试JavaScript代码?(答案#45515159)

继续阅读:

https://netbeans.org/kb/docs/webclient/html5-js-support.html

编辑:

在静态HTML标记中设置JS断点在可视代码中似乎是可行的,例如->

https://github.com/Microsoft/vscode-chrome-debug/issues/122

票数 6
EN

Stack Overflow用户

发布于 2021-03-01 03:36:32

我不知道我是不是来晚了,但是,我偶然发现了下面的网站,并且能够为Javascript和PHP设置调试器,该调试器支持在PHP脚本中调试嵌入式JavaScript。

来源:

https://abcmemo.com/2017/04/20/debug-php-and-javascript-in-visual-studio-code/

该网站使用PHP.exe作为web服务。

也可以使用IIS、Apache或其他。

要求:

IDE: Visual studio代码

扩展: PHP调试

扩展:调试器(Chrome、Firefox或Edge)

php.ini中的Xdebug集

浏览器中的扩展(可选):如果要在触发器上调试,则使用PHP xdebug。

您需要同时运行两个调试器,一个用于PHP,另一个用于JavaScrpit。

PHP示例

JavaScript示例

票数 3
EN

Stack Overflow用户

发布于 2018-10-21 09:25:16

我使用了很多wordpress模板,在这些模板中,我不得不在php文件中处理一些js。假设您可以在服务器上运行您的代码,那么您可以轻松地在chrome中的dev工具中调试您的输出(如果使用chrome)。Chrome还允许设置断点,这样你就可以逐行执行,而且因为你的浏览器最终会运行js,所以你可以监控你的代码行为,而不需要处理php。这是我处理这个问题的主要方式。

我还建议将尽可能多的js文件分离到您的资产文件夹中的单独文件中。根据你的项目,你很少需要内联你的代码,在我看来,在你的php中包含大量的JS是很混乱的,除非你使用

或者

属性(也可以使用事件侦听器处理。

除此之外,

所有东西中的垃圾。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52911197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档