使用 Netbeans、Wordpress 和 Postman 调试 REST Api 端点

使用 Netbeans、Wordpress 和 Postman 调试 REST Api 端点

我正在尝试调试 WP 安装中的 REST Api 问题。它崩溃了,我必须找出原因。

我的问题是,当我从 postman 访问 Api 端点时,我无法让 Xdebugger 连接到 IDE。当从 IDE 启动时,我可以从 Netbeans 标准 URL 顺利运行,但在等待连接并从 Postman 触发时无法连接到 IDE。

我坚信 PHP.ini 设置没问题。Apache Web 服务器在同一台机器上运行,因此无需路径映射(但这并不重要)。

机器操作系统是Windows 10。我的配置如下:

  1. 配置邮递员:POSThttp://localhost/test/wp-json/wp/v2/posts?XDEBUG_SESSION_START=netbeans-xdebug&title=测试&status=publish&content=blah 身份验证 = JWT。在标题中设置。
  2. 高级 Web 配置设置为:“proxy='',port: 9000”,调试 URL:“始终询问”

    开始调试 -> 弹出窗口要求输入 URL:输入'http://localhost/test/wp-json/wp/v2/posts'-> IDE 等待 xdebug 连接。

    cmd 中的 netstat:netstat -na | 找到“LISTENING”| 找到“127”

    返回 = 无!

Netbeans 没有监听!我检查了所有我能想到的东西。PHP.ini 中的端口设置肯定是正确的,工具 -> 选项->PHP 端口 9000 与 PHP.ini 匹配。

我仍然无法让那该死的东西做出反应。呜呜呜呜……真令人沮丧。有人能帮忙吗?

注意:邮递员发送的帖子执行良好,状态良好,并显示在 WP 中。想想看……:-/

xdebug.log

[4464] Log opened at 2019-04-24 16:41:09
[4464] I: Connecting to configured address/port: 127.0.0.1:9000.
[4464] E: Time-out connecting to client (Waited: 200 ms). :-(
[4464] Log closed at 2019-04-24 16:41:09

Xdbug fires but can not find a listner.

PHP.ini

xdebug.idekey = netbeans-xdebug
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:/xampp/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_autostart = 0
xdebug.remote_connect_back = 0
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = req
xdebug.remote_log = "c:/xampp/tmp/xdebug/xdebug_remot.log"
xdebug.show_local_vars = 9
xdebug.trace_output_dir = "c:/xampp/tmp"
xdebug.remote_cookie_expire_time=36000

答案1

是的,解决了。像往常一样,睡个好觉就解决了。我睡觉的时候大脑在做家务(小房子要保持整洁 :-),问题解决了。问题只是让 IDE 监听来自 Xdebug 的连接请求。所以在我的项目配置->运行配置->项目网址中:http://localhost/测试(无论您的 WP 项目是什么),索引文件:index.php。高级对话框->始终询问。保存配置。

当我开始调试时;->Url 询问弹出;http://localhost/wp-json/wp/v2/posts与之前相同。按 Enter

会发生什么以及您将看到什么;

  1. 当您从 IDE 启动调试会话时,Web 浏览器将弹出一个窗口,其中包含来自端点的 JSON 输出。当然,您只是从 IDE 调用它 :-) 如果您在 index.php 中有一个断点,它将命中该断点。

  2. 刚刚发生了什么?IDE 成功启动了与接收器的调试会话。IDE 现在将有一个打开的会话,它将对通过 Xdebug 的每个事件做出响应,并在 Header/或 URL 中设置 XDEBUG-SESSION-START=netbeans-xdebug cookie 作为参数。当然,这是因为 Netbeans 在主菜单->工具->选项->php->调试对话框中配置了相同的 cookie。

    1. 那会做什么?没错,现在对任何 JSON REST Api 端点的每次调用都通过 Xdebug。现在您可以调试任何需要弄清楚的 REST 调用。Hallelulja - 交出钱 :-) 感谢编写 Xdebug 的伟大人物 Derick Rethans。超级人物 :-)

相关内容