我是插件创作的新手,调试时很费力。
我使用了很多回声,而且草率而丑陋。
我确定有更好的方法可以执行此操作,也许是带有调试器的IDE,我可以在其中运行整个站点(包括插件)吗?
我是插件创作的新手,调试时很费力。
我使用了很多回声,而且草率而丑陋。
我确定有更好的方法可以执行此操作,也许是带有调试器的IDE,我可以在其中运行整个站点(包括插件)吗?
Answers:
进入wp-config.php并更改define('WP_DEBUG', false);
为define('WP_DEBUG', true);
。另外,安装Andrew Nacin的日志弃用通知插件。
我调试老式的方法,error_log()
ing和var_dump
ing。我发现这对我来说是最有效的方法,我有几个包装函数来处理不同类型的数据,因为error_log
数组和对象的合并可能会很麻烦。另外,print_r()
在in中使用in可能很难读取<pre>
。我有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 );
或其他。
修补了许多IDE之后,我使用了超定制的语法突出显示配色方案,安装到了普通的旧Notepad ++中。
我有一个宏设置,当我按下Shift-Ctrl-X时,以下代码将在我的光标所在的位置输出:
echo "<pre>";
var_dump($);
echo "</pre>";
exit();
这很简单,但是通过启用此宏和WP_DEBUG,我通常可以追查90%的错误。
print_r($var, true)
而不是给出的输出var_dump
。
我编写了一个用于制作日志文件的小类,在调试ajax调用时非常有用。
http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php
您只需要执行以下操作:
Debug :: log(“这是一条调试消息”);
当执行该行时,将在日志文件中添加一条消息,然后您可以使用tail命令(如果使用的是unix风格的操作系统)
tail -f mylogfile.log
如果可以传递给此函数,则还可以使用数组或对象。
注意,您需要将第20行更改为要保存日志文件的路径
我建议检查FirePHP。您可以通过HTTP标头将调试信息发送到Firefox的Firebug,这通常可以提供更清晰的调试输出。
另一个非常好的地方是“ krumo” php类。它在½分钟内实现,并提供了一种调试各种变量的简便方法:
此外,它还有助于回溯,显示加载的类或包含的文件以及按需显示的所有内容。
另外它是免费的!
克鲁姆@sourceforge
我使用一个名为LogPress的$ 13插件,您可以在ThemeForest上购买它,这绝对是天赐良机。您可以调试与其插件和站点有关的所有内容。支持Firebug控制台日志记录以及更多其他功能。我不能没有它,这就是我使用这个插件的次数。
这个插件可能是我花过的最好的钱,并且在我的Wordpress插件开发中节省了无数小时。
首先,我将define('WP_DEBUG', false);
wp-config.php文件(正如大多数人所说的那样)添加到本地安装中,这是相关生产站点(文件和数据)的最新副本。这使得内容快速,安全,独立,但可以很好地反映出插件将实际使用的至少一个位置。
我还添加了Debug Bar插件以及一些Debug Bar插件(例如Transients),以适合您的插件。
我还使用了适用于Firefox的Firebug插件,该插件非常有助于跟踪html,css和JavaScript问题,也非常适合查看布局怪异现象。
我使用UltraEdit进行编码,我已经在工作和家庭中使用了15年以上的时间来进行一堆编码(从PHP到SQL),所以这对我来说效果很好,但可能我没有足够的评价作为IDE很多人。它具有语法高亮显示,自动完成和代码布局功能以及一堆html和css快捷工具,可帮助避免输入错误等。通常,这给我带来了熟悉,这是在急于求新时经常忽略的重要方面。肌肉记忆甚至在编码中也有助于重复性。
当然,通常我会在合适的示例中的另一个选项卡中从抄本中打开一些合适的页面。
所有这些都以不同的方式帮助突出显示编码,解析,功能和布局错误,并且不会对我的编码方式或是否有任何问题产生很大的干扰。如果您正在尝试或解决一些稍后要重新访问的内容,可以忽略或停用大多数功能。
哦,定位良好的echo或print_r检查某个键上的内容没有什么错(只要您在完成操作后将其删除)。
WP_DEBUG
按照John的建议将其设置为false,那么您就可以很好地了解脚本中出了什么问题(如果有的话)。然后,您可以在Dreamweaver中进行编辑,按Ctrl + S,然后在浏览器中按F5以立即查看更改。