当前位置: 首页>>网站问题>>正文


你如何调试插件?

webfans 网站问题 , , , 去评论

问题描述

我对插件创作很新,并且很难进行调试。

我使用了很多回声,而且它很邋and和丑陋。

我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在包含插件的情况下运行整个站点?

最佳解决方案

进入wp-config.php并将define('WP_DEBUG', false);更改为define('WP_DEBUG', true);。另外,安装Andrew Nacin的Log Deprecated Notices插件。

次佳解决方案

如果您打印出错误,那么x-debug是一个出色的PHP扩展,它为PHP添加了现代回溯。

如果您正在尝试解决没有错误的情况,我最喜欢的方法是定义一个将其输出记录到文件的函数。所以我做plog($ variable),然后出现在日志文件中,然后我可以检查。当您尝试解决在调用 header()之前发生的事情或其他无法打印到STDOUT的情况时,这尤其有用。

第三种解决方案

使用xdebug + NetBeans IDE。完全配置后 – 这很容易 – 您可以在插件中设置断点并在断点处观察变量。我认为这是调试插件或任何php应用程序的最佳方法。

第四种方案

我调试老式的方式, error_log()ing和var_dumping。我发现这对我来说是最有效的方式,我有几个包装器函数来处理不同类型的数据,因为error_loging数组和对象可能很痛苦。而且,当它不在< pre>中时,使用 print_r()可能是难以阅读的。我有用于错误记录的 tj_log(),以及用于显示输出的 tj()(它基本上显示了一个可呈现的mannor中的任何数据类型:

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之后,我使用ultra-customized语法高亮颜色方案进入了普通的旧Notepad++

我有一个宏设置,当我点击Shift-Ctrl-X时,以下代码输出我的光标所在:

echo "<pre>";
var_dump($);
echo "</pre>";
exit();

这很简单,但我通常可以使用此宏加上WP_DEBUG来捕获90%的错误。

第六种方案

我为make一个日志文件写了一个小类,在调试ajax调用时非常有用。

http://github.com/hunk/Magic-Fields/blob/master/tools/debug.php

你只需要做类似的事情:

Debug :: log(“这是一个调试消息”);

当执行该行时,该消息将被添加到日志文件中,之后您可以使用tail命令(如果您使用的是某些unix的样式操作系统)

tail -f mylogfile.log

如果您也可以将数组或对象传递给此函数。

请注意,您需要更改要保存日志文件的路径的第20行

第七种方案

我在Linux上使用Aptane IDE,在Windows上使用UltraEdit,这个也有一个PHP-parser。此外,我使用wp-config.php中定义的常量WP_DEBUG查看xDebug中的所有提示。

另请参阅我的post on this topic,随时评论并提供有关您的开发工具的反馈。

第八种方案

我建议检查出FirePHP。您可以通过HTTP标头将调试信息发送到Firefox的Firebug,这通常可以实现更清晰的调试输出。

第九种方案

也不差:Eclipse它接近PhpStorm +免费。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2682.html,转载请务必附带本地址声明。