我使用了很多回声,而且草率而丑陋。
我相信有更好的选择这样的方法,也许是带有调试器的IDE,我可以在其中运行整个站点(包括插件)?
#1 楼
进入wp-config.php并将define('WP_DEBUG', false);
更改为define('WP_DEBUG', true);
。另外,安装Andrew Nacin的Log Deprecated Notices插件。评论
我也会查看Nacin的其他文章:andrewnacin.com/2010/04/23/5-ways-to-debug-wordpress
–kevtrout
2010年8月12日15:10
使用PHP 5.4+,您可能会被E_STRICT通知淹没。将此要点放到plugins文件夹中,然后激活以删除严格通知,然后停用以返回到正常服务。
– Webaware
13年11月16日23:20
#2 楼
如果打印出错误,那么x-debug是一个出色的PHP扩展,它为PHP添加了现代的回溯。最喜欢的方法是定义一个函数,将其输出记录到文件中。所以我做了plog($ variable),它出现在日志文件中,然后我可以检查它。当您尝试弄清楚header()调用之前发生的情况,或者其他无法打印到STDOUT的情况时,这特别有用。#3 楼
使用xdebug + NetBeans IDE。完全配置后(这很容易做到),您可以在插件中设置断点,并在断点处观察变量。我认为这是调试插件或任何php应用程序的最佳方法。#4 楼
修改了许多IDE之后,我使用了超定制的语法突出显示配色方案适应了普通的旧Notepad ++。我设置了一个宏,当我按下Shift-Ctrl-X时,以下代码会在我的光标所在的位置输出输出:
echo "<pre>";
var_dump($);
echo "</pre>";
exit();
很简单,但是使用此宏以及启用WP_DEBUG,我通常可以捕获90%的错误。
评论
好身手。编辑器中的键盘热键震撼!
– hakre
2010年8月25日在20:59
我更喜欢print_r($ var,true)给出的输出,而不是var_dump。
–brasofilo
13年1月29日在21:48
#5 楼
我调试了error_log()
和var_dump
的老式方法。我发现这对我来说是最有效的方法,我有几个包装函数来处理不同类型的数据,因为数组和对象可能很麻烦。同样,当error_log
不在print_r()
中时,使用<pre>
in可能很难读取。我有用于错误记录的tj_log()
和用于显示输出的tj()
(基本上显示了可显示的方式中的任何数据类型:function tj( $code ) {
?>
<style>
.tj_debug { word-wrap: break-word; white-space: pre; text-align: left; position: relative; background-color: rgba(0, 0, 0, 0.8); font-size: 11px; color: #a1a1a1; margin: 10px; padding: 10px; margin: 0 auto; width: 80%; overflow: auto; -moz-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -webkit-box-shadow:0 10px 40px rgba(0, 0, 0, 0.75); -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: none; }
</style>
<br /><pre class="tj_debug">
<?php
if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
var_dump( $code );
else :
print_r( $code );
endif;
echo '</pre><br />';
}
function tj_log( $code ) {
if ( is_null( $code ) || is_string($code) || is_int( $code ) || is_bool($code) || is_float( $code ) ) :
$code = var_export( $code, true );
else :
$code = print_r( $code, true );
endif;
error_log( $code );
}
所以我就这样做:
tj( $current_user );
或其他方法。#6 楼
我编写了一个用于制作日志文件的小类,在调试ajax调用时非常有用。http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
您只需要执行以下操作:
Debug :: log(“这是一条调试消息”);
执行该行时,该消息将添加到日志文件中,之后您可以使用tail命令(如果使用的是unix风格的操作系统)
tail -f mylogfile.log
如果还可以将数组或对象传递给此函数。
请注意,您需要将第20行更改为要保存日志文件的路径。
#7 楼
我在Linux上使用Aptane IDE,在Windows上使用UltraEdit,并且这也有一个PHP解析器。另外,我还通过x4312079q中定义的常量WP_DEBUG
查看了来自xDebug的所有提示。#8 楼
我建议签出FirePHP。您可以通过HTTP标头将调试信息发送到Firefox的Firebug,这通常可以使调试输出更清晰。#9 楼
还算不错:Eclipse接近PhpStorm + free。#10 楼
我可以推荐两个IDE,并且已经广泛使用它们:PhpED(仅Windows)和PhpStorm + XDEBUG(Mac,Windows和Linux。)我现在在Mac上,因此只能使用后者。他们两个都摇滚!好消息是,PhpStorm在2010年9月之前为49美元,在此之后仅为99美元。如果我在Windows上并且不得不再次选择,请不确定我会选择哪个。如果它们对于开发WordPress插件而言相对较新。
#11 楼
Krumo-样式化的php调试类另一个非常好的地方是“ krumo” php类。它在½分钟内实现,并提供了一种调试各种变量的简单方法:
对象,
数组,
字符串/浮点数/整数/等。
Plus还有助于回溯,显示已加载的类或包含的文件以及所有按需显示的内容。
另外它是免费的!
下载
Krumo @sourceforge
#12 楼
我使用一个名为LogPress的$ 13插件,您可以在ThemeForest上购买它,这绝对是天赐良机。您可以调试与他们的插件和网站有关的所有内容。支持Firebug控制台日志记录以及更多其他功能。我不能没有它,这就是我使用这个插件的次数。这个插件可能是我花过的最好的钱,它为我的Wordpress插件开发节省了无数小时。 />
评论
哇,我因推荐付费插件而感到沮丧,而该插件与我没有任何关联?那有点笨拙吗?
– Dwayne Charrington
2012年2月15日在2:53
我不是被否决的人,但我并不感到惊讶。您使用的语言就像您要出售插件一样。推荐东西还可以,但要像“绝对的上帝送出”那样努力推销。人们讨厌广告。只需调低语言,推荐就可以说明一切。
–icc97
16年11月27日在17:01
#13 楼
我正在使用phpED和xdebug,但是对我来说(似乎对其他人来说)是不可能调试插件或主题文件的!调试器仅在主或原始“核心”文件中的断点处停止!有人可以帮助我吗?
#14 楼
首先,我将define('WP_DEBUG', false);
添加到wp-config.php文件(正如大多数人所说的那样)到本地安装,这是相关生产站点(文件和数据)的最新副本。这使东西变得快速,安全,独立,但可以很好地反映出该插件实际要使用的至少一个地方。我还添加了Debug Bar插件以及一些Debug Bar附加组件(例如,瞬态)-适用于您的插件。
我还使用了适用于Firefox的Firebug插件,该插件非常有助于跟踪html,css和JavaScript问题,也非常适合查看布局怪异之处。
我使用UltraEdit进行编码,我已经在工作和家庭中使用了15年以上,用于一堆编码(从php到SQL),所以这对我来说很好用,但也许不起作用我有很多人可以将其评为IDE。它具有语法高亮显示,自动完成和代码布局功能以及一堆html和css快捷工具,可帮助避免输入错误或类似情况。通常,这给我带来了熟悉,这是在急于寻求新产品时常常忽略的重要方面。肌肉记忆甚至在编码中也有助于重复性。
当然,通常我会在合适的示例中的另一个选项卡中从抄本中打开一些合适的页面。
这些全都以不同的方式提供帮助突出显示编码,解析,功能和布局错误的方法,并且不会对我的编码方式造成太大干扰,或者如果没有其他问题的话。如果您正在尝试或解决一些稍后将要重新访问的问题,可以忽略或停用大多数内容。
哦,定位良好的echo或print_r在某处检查某些内容没有什么问题键(只要您在完成操作后将其删除)。
#15 楼
结合使用Query Monitor和Query Monitor Extend进行WordPress的全面调试(PHP错误/通知/严格/警告,数据库查询,路径,常量,HTTP请求,瞬态,会话变量,变量转储)。另请查看“所有帖子元和保存内容”插件以获取有关帖子的特定信息。
#16 楼
PHPStorm和Xdebug是我为WordPress开发而改变的游戏。强烈推荐。特别是使用他们的内联调试工具。评论
您如何设置?
– jgraup
16年1月30日,下午3:57
只需访问他们的帮助网站:jetbrains.com/help/phpstorm/2016.2/configuring-xdebug.html
–伊曼纽尔·罗查·科斯塔(Emanuel Rocha Costa)
16 Sep 15'3:25
评论
我还没有看到可以在IDE内完全运行WordPress的IDE……尽管那太棒了。我通过在本地运行WAMP并在Dreamweaver中进行代码来调试插件。如果按照John的建议将WP_DEBUG设置为false,那么您就可以很好地了解脚本中出了什么问题(如果有的话)。然后,您可以在Dreamweaver中进行编辑,按Ctrl + S,然后在浏览器中按F5以立即查看更改。@EAMann-确保同时检查PhpEd(对于Windows)和PhpStorm + XDEBUG(对于Mac,Linux和Windows)。