问题描述
我正在尝试使用 Xdebug 和 PHPStorm 调试 wordpress 安装。
如果我在functions.PHP的顶部写这个:
[line 1]: <?PHP
[line 2]: $test = '1234';
并在第 2 行设置一个断点,然后运行“Debug functions.PHP”,然后我点击了该断点,我就可以在 PHPStorm 中调试该断点。到目前为止一切顺利!
但是如果我将它向下移动到functions.PHP的底部,并执行相同的操作,则会出现错误:
PHP Fatal error: Uncaught Error: Call to undefined function add_action() in /path/to/project/wp-content/themes/my-theme-name/functions.PHP:44
#0 {main}
堆栈跟踪:
在第 44 行的 /path/to/project/wp-content/themes/my-theme-name/functions.PHP 中抛出
第 44 行如下所示:
[line 43]: include_once( __DIR__ . '/classes/AdminNotice.PHP' );
[line 44]: add_action('admin_notices',[new AdminNotice(),'displayAdminNotice']);
我也试过调试其他文件。
喜欢page.PHP
。同样的事情 - 如果我在顶部添加我的演示代码(和断点),那么它就可以工作。
但是如果我把它移到底部,它就会在 get_header()
上绊倒。错误:
PHP Fatal error: Uncaught Error: Call to undefined function get_header() in /path/to/project/wp-content/themes/my-theme-name/page.PHP:6
堆栈跟踪:
#0 {main}
在第 6 行的 /Users/zethodderskov/Code/Greenmind/V2-1__local/app/public/wp-content/themes/my-theme-name/page.PHP 中抛出
第 6 行如下所示:
get_header(); ?>
如果我在导入的类中设置断点,那么它不会在该断点处停止(即使我 100% 确定它到达了代码的那部分)。
这可能是因为它是在 POST 请求期间到达的。嗯……我讨厌做菜鸟。
有用的情报
- 我尝试了很多次设置 Xdebug,但从未成功。这是我得到的最接近的。所以这可能是一些愚蠢的错误。
- 我使用的是 PHP 8.0.6 版、Xdebug 3.0.4 版和 PHPStorm 2020.3.1 版 - 版本号 #PS-203.6682.180。
- 远程服务器是一个 Cloudways-server。
- 我已将 wordpress(和 WooCommerce)定义为外部库(语言和框架 >> PHP)。所以 PHPStorm 应该知道 wordpress 的功能。我可以 CMD+单击 wordpress 功能并查看功能定义。
- 如果我转到“运行”>>“Web 服务器调试验证”并单击“验证”,则会显示所有绿色勾号。
- 我遵循最多的指南是这个Zero-configuration Xdebug debugging。
- 这是我本地
PHP.ini
文件的内容:
...
... Omitted lines
...
[xdebug]
zend_extension="/usr/local/lib/PHP/pecl/20200930/xdebug.so"
xdebug.mode=debug
xdebug.client_host=12.123.123.123 (IP to Cloudways-server)
xdebug.client_port=9003
; End of file
PHP_admin_value[display_errors]=on
PHP_admin_value[memory_limit]=2048M
PHP_value[xdebug.remote_enable]=1
PHP_value[xdebug.mode]=debug
PHP_value[xdebug.client_host]=87.116.38.66
回复评论 1
正如@LazyOne 指出的那样,我可能正在调试单个文件,而我正在尝试调试正在运行的整个项目。
我只是不确定如何做到这一点。如果我转到“运行”>>“编辑配置”(在调试下),则会到达此对话框:
而且我不确定我应该在这里做什么,因为它“强迫我”定义我要调试的文件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)