How do you debug plugins?

时间:2010-08-11 作者:Sruly

我对插件创作还很陌生,调试也很困难。

我用了很多echo,它又脏又丑。

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

13 个回复
SO网友:John P Bloch

进入wp配置。php与变革define(\'WP_DEBUG\', false);define(\'WP_DEBUG\', true);. 另外,安装Andrew Nacin的Log Deprecated Notices 插件。

SO网友:SethMerrick

在修补了许多IDE之后,我进入了纯旧的Notepad++ 具有超定制的语法突出显示配色方案。

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

echo "<pre>";
var_dump($);
echo "</pre>";
exit();
这很简单,但使用这个宏加上WP_调试,我通常可以找到90%的bug。

SO网友:Joe Hoyle

我用老式的方式调试,error_log()ing和var_dump惯性导航与制导。我发现这是最有效的方法,我有几个包装函数来处理不同类型的数据,如error_log对数组和对象进行加密可能会很痛苦。此外,使用print_r() 当它不在一个文件夹中时,它可能很难阅读<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 ); 或者别的什么。

SO网友:Gnuget

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

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

您只需执行以下操作:

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

执行该行时,消息将添加到日志文件中,然后可以使用tail命令(如果您使用的是某种unix风格的操作系统)

tail-f mylogfile。日志

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

note 需要将第20行更改为保存日志文件的路径

SO网友:bueltge

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

另见我的post on this topic 并且可以随时对您的开发工具进行评论和反馈。

SO网友:Annika Backstrom

我建议退房FirePHP. 您可以通过HTTP头向Firefox的Firebug发送调试信息,这通常会使调试输出更清晰。

SO网友:kaiser

也没那么糟:Eclipse 它接近PhpStorm+免费。

SO网友:MikeSchinkel

我可以推荐两种IDE,我已经广泛使用了这两种IDE:PhpED (仅限Windows)和PhpStorm+XDEBUG(Mac、Windows和Linux)我现在在Mac上,所以只能使用后者。

他们俩都很厉害!好消息是,PhpStorm在2010年9月之前是49美元,之后只有99美元。如果我在Windows上,不得不再次选择,我不确定我会选择哪个。

坦率地说,我忍不住觉得,任何不使用这两种工具之一的插件开发人员都会受到严重的阻碍,尤其是如果他们对开发WordPress插件相对较新的话。

SO网友:kaiser

Krumo-风格化的php调试类另一个非常好的东西是“Krumo”php类。它在½分钟内实现,并提供了调试所有类型变量的简单方法:

  • 对象、
  • 数组、
  • 字符串/浮点/整数等。
    • Plus 它有助于回溯,显示加载的类或包含的文件以及所有需要的内容。

      Plus 它是免费的!

      下载Krumo@sourceforge

SO网友:Dwayne Charrington

我用了一个13美元的插件叫做LogPress 你可以先买,这绝对是上帝的恩赐。你可以调试与他们的插件和网站有关的一切。支持Firebug控制台日志记录和更多功能。我不能没有它,这就是我使用这个插件的程度。

这个插件可能是我花过的最好的钱,它为我的Wordpress插件开发节省了无数的时间。

SO网友:Kreker

我正在使用phpED和xdebug,但对我来说(似乎对其他人来说),调试插件或主题文件是不可能的!调试器只在主文件或原始“核心”文件中的断点上停止!有人能帮我吗?

SO网友:Caleb

退房Query Monitor 与…结合Query Monitor Extend 用于全面调试WordPress(PHP错误/通知/严格限制/警告、数据库查询、路径、常量、HTTP请求、瞬态、会话变量、var转储)。

也请查看All Post MetaSaving What 关于帖子的特定信息的插件。

SO网友:Emanuel Rocha Costa

PHPStorm和Xdebug对我来说是WordPress开发的一个改变。现在强烈推荐。特别是他们的内联调试工具。

结束

相关推荐