php - 如何在 PHP 中调试 api(不使用 var_dump();die();)

标签 php api breakpoints xdebug

所以我正在用 php 编写一个 api,并且我想使用一个提供全方位服务的调试工具。即设置断点、查看堆栈跟踪、检查变量等。这种事情在编译语言中很常见。

我检查了 xdebug,在将它配置为与 phpstorm(我的 IDE)一起工作后,我失望地发现它只在我从 phpstorm 中运行时起作用,而不是当我实际服务真实的 api 请求。

为了增加额外的复杂性,api 数据库实际上托管在一个 vagrant 实例上,因此尽管我在本地机器上编写和编辑代码,但正在运行的代码是在虚拟机 vagrant 环境中。

还有其他方法吗?还是我应该习惯于 print_r();exit; 并重新运行请求?

最佳答案

使用 XDebug,并正确配置它。您可以轻松地将其配置为无需从 PhpStorm 运行代码即可工作。

xdebug.remote_enable = on
xdebug.remote_connect_back = on
xdebug.idekey = "vagrant"

确保这些都已设置。然后,在 PhpStorm 中,右上角有一个看起来像电话图标的东西(以及工具栏中的其余调试和运行内容)。确保全部为绿色(即监听连接)。

您可以使用 Xdebug 设置断点。如果您设置正确,它甚至可以与 CLI 应用程序一起使用。您甚至可以从 Vagrant 虚拟机内部或远程服务器上调试代码。

您只需要研究一下如何设置您的 IDE。 ;)

更多详情:http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/

这可能对您有用:https://www.jetbrains.com/phpstorm/marklets/

还有这个:https://www.jetbrains.com/phpstorm/help/configuring-xdebug.html

还有这个:https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm

关于php - 如何在 PHP 中调试 api(不使用 var_dump();die();),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805809/

相关文章:

api - YouTube订阅api [错误]

jquery - 在移动设备上单击向上/向下滑动 div,并在桌面上以模态视图查看相同的 div

php - 如何在 Mac OSX 上安装 php 5.6 mysql 扩展

php - Postgres,查询错误

java - 如何组合这些 Set<?为我的 API 扩展 Vector> 过滤函数?

C++ 创建弹窗

php - 在 WooCommerce 中以编程方式更新客户的账单信息

php - Drupal node_save 不再返回 $nid,那么如何获取它呢?

c# - 当前不会命中断点。尚未在 Unity 中为此文档加载任何符号

gdb - 在文件中的类的成员函数上设置断点