将 phpdbg 与内置 php 服务器一起使用?
Using phpdbg with the built-in php server?
我真的很喜欢在 Ruby 土地上使用 php built in server, and I really like the look of phpdbg. It reminds me of pry。但我一直无法让它发挥作用。 运行 用户 phpdbg
是否可以使用内置网络服务器?
例如,我会如何喜欢这个工作:
- 在代码中放置
phpdbg_break();
- 运行在 CLI 中
php -S localhost:8000
- 在浏览器或通过curl
加载page/making执行包含phpdbg_break();
代码的请求
- 闯入 phpdbg REPL 最有可能在启动内置服务器的同一个 terminal/CLI 实例中
当我尝试这个时,我得到一个错误,指出 phpdbg_break();
是一个未定义的函数。
否则(如果以上根本不可能),您如何使用 "webmocking" that the docs talk about(在底部)?如何使用特定 URI 发出特定请求?
如果我理解正确的话,phpdbg_break
是解释器提供的功能,而不是任何扩展。您应该使用 phpdbg 服务器,而不是使用内置的 PHP 服务器,并模拟 Web 请求。请参阅 http://phpdbg.com/docs/mocking-webserver for information on how to mock the request and http://phpdbg.com/docs/simples 了解如何 运行 调试器。
要向特定 URI 发出请求,我认为您需要设置 $_SERVER['REQUEST_URI']
和可选的 $_SERVER['QUERY_STRING']
以指向您要测试的 URL。 URI 将类似于“/path/to/file”,查询字符串将是 ?和 URL 中的#(即?page=2)
感谢您向我指出 phpdbg,我不知道该工具,但它似乎是一个非常好的工具;我会在接下来的几天对其进行测试。
出于同样的原因,我使用 psysh,只是因为它让我想起了 pry
。我实际上使用这段代码代替 ruby
.
中的 binding.pry
require "path_to_psysh_on_your_local_file_system";
\Psy\Shell::debug(get_defined_vars(), $this);
这对我来说已经足够好了。我遇到的唯一问题是:
- 无法连接到
CGI
中现有的 PHP 进程 运行,使用 nginx 或 apache 服务器
- 内置的 PHP 服务器是单线程的,非常 慢,这有时让我抓狂
除此之外,我对我目前的工作流程很满意。我很乐意听到其他人对此的意见。
似乎还有一些关于 Remote Debugging 的工作正在进行,这可能会解决我的问题。
我真的很喜欢在 Ruby 土地上使用 php built in server, and I really like the look of phpdbg. It reminds me of pry。但我一直无法让它发挥作用。 运行 用户 phpdbg
是否可以使用内置网络服务器?
例如,我会如何喜欢这个工作:
- 在代码中放置
phpdbg_break();
- 运行在 CLI 中
php -S localhost:8000
- 在浏览器或通过curl 加载page/making执行包含
- 闯入 phpdbg REPL 最有可能在启动内置服务器的同一个 terminal/CLI 实例中
phpdbg_break();
代码的请求
当我尝试这个时,我得到一个错误,指出 phpdbg_break();
是一个未定义的函数。
否则(如果以上根本不可能),您如何使用 "webmocking" that the docs talk about(在底部)?如何使用特定 URI 发出特定请求?
如果我理解正确的话,phpdbg_break
是解释器提供的功能,而不是任何扩展。您应该使用 phpdbg 服务器,而不是使用内置的 PHP 服务器,并模拟 Web 请求。请参阅 http://phpdbg.com/docs/mocking-webserver for information on how to mock the request and http://phpdbg.com/docs/simples 了解如何 运行 调试器。
要向特定 URI 发出请求,我认为您需要设置 $_SERVER['REQUEST_URI']
和可选的 $_SERVER['QUERY_STRING']
以指向您要测试的 URL。 URI 将类似于“/path/to/file”,查询字符串将是 ?和 URL 中的#(即?page=2)
感谢您向我指出 phpdbg,我不知道该工具,但它似乎是一个非常好的工具;我会在接下来的几天对其进行测试。
出于同样的原因,我使用 psysh,只是因为它让我想起了 pry
。我实际上使用这段代码代替 ruby
.
binding.pry
require "path_to_psysh_on_your_local_file_system";
\Psy\Shell::debug(get_defined_vars(), $this);
这对我来说已经足够好了。我遇到的唯一问题是:
- 无法连接到
CGI
中现有的 PHP 进程 运行,使用 nginx 或 apache 服务器 - 内置的 PHP 服务器是单线程的,非常 慢,这有时让我抓狂
除此之外,我对我目前的工作流程很满意。我很乐意听到其他人对此的意见。
似乎还有一些关于 Remote Debugging 的工作正在进行,这可能会解决我的问题。