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

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

我已经检查了xdebug,并将其配置为可以与phpstorm(我的IDE)一起使用后,我很失望地发现它仅在我从phpstorm内部run起作用时才起作用,而在我实际服务于真正的api请求时却不能起作用。

为了增加此功能的复杂性,实际上将api数据库托管在一个流浪者实例上,因此,尽管我在本地计算机上编写和编辑代码,但是正在运行的代码却在虚拟机流浪者环境中。

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

参考方案

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

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

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

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

您只需要对如何设置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

我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…