web-dev-qa-db-ja.com

どのようにしてプラグインをデバッグしますか?

私はプラグインオーサリングにはかなり慣れておらず、デバッグに苦労していました。

私はたくさんのエコーを使いました、そしてそれはずさんで醜いです。

もっと良い方法があると私は確信しています、多分私がプラグインを含めてサイト全体を走らせることができるデバッガのIDE?

47
Sruly

Wp-config.phpに入り、define('WP_DEBUG', false);define('WP_DEBUG', true);に変更してください。また、Andrew Nacinの Log Deprecated Notices pluginをインストールしてください。

21
John P Bloch

エラーが表示される場合は、x-debugがPHPに最新のバックトレースを追加する素晴らしいPHP拡張子です。

エラーがないところで何が起こっているのかを解明しようとしているのなら、私のお気に入りのアプローチはその出力をファイルに記録する関数を定義することです。それで私はplog($ variable)をします、そしてそれは私がそれから調べることができるログファイルに現れます。これは、header()が呼び出される前に起こったことや、STDOUTに出力できないその他の状況を解決しようとしているときに特に便利です。

12
tomdxw

xdebug + NetBeans IDEを使用してください。完全に設定されると(これは簡単です)、プラグインにブレークポイントを設定し、そのブレークポイントで変数を監視することができます。私はそれがプラグインやその他のphpアプリケーションをデバッグするための最良の方法だと思います。

10
Raj

error_log()ingとvar_dumpingという古い方法をデバッグします。これが私にとって最も効率的な方法であることがわかりました。配列やオブジェクトをerror_logingするのは面倒になる可能性があるので、さまざまな種類のデータを処理するためのラッパー関数がいくつかあります。また、print_r() 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 );または何でもします。

6
Joe Hoyle

私はログファイルを作るための小さなクラスを書きました、あなたがajax呼び出しをデバッグしているとき非常に役に立ちます。

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

あなただけのようなことをする必要があります:

Debug :: log( "これはデバッグメッセージです");

その行が実行されるとメッセージがログファイルに追加され、その後tailコマンドを使用することができます(あなたが何らかのUnixスタイルのオペレーティングシステムを使用している場合)

tail -f mylogfile.log

この関数に配列またはオブジェクトも渡すことができれば。

note ログファイルを保存するパスの20行目を変更する必要があります

5
Gnuget

いくつかのIDEについていじった後、私は非常にカスタマイズされたSyntax Highlightingカラースキームを使って、普通の Notepad ++ に落ち着きました。

Shift-Ctrl-Xを押すと、カーソルがある場所に次のコードが出力されるようにマクロを設定しました。

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

それは簡単ですが、私は一般的にこのマクロとWP_DEBUGを有効にすることで私のバグの90%を追い詰めることができます。

5
SethMerrick

LinuxではAptane IDEを、WindowsではUltraEditを使用していますが、これにはPHPパーサーもあります。また、WP_DEBUGで定義されている定数wp-config.phpを使用してxDebugからのヒントをすべて表示します。

このトピックについての私の 投稿も参照してください そしてあなたの開発ツールについてコメントしてフィードバックをください。

3
bueltge

それほど悪くない。 Eclipse PhpStorm + freeに近い。

2
kaiser

FirePHP をチェックアウトすることをお勧めします。 HTTPヘッダを介してFirefoxのFirebugにデバッグ情報を送信できます。これにより、通常、よりきれいなデバッグ出力が得られます。

2

私がお勧めすることができる2つのIDEがあります、そして私は両方とも広範囲に使いました: PhpED (Windowsのみ)と PhpStorm + XDEBUG(Mac、WindowsとLinux)。後者。

二人ともROCK! PhpStormは2010年9月までに49ドル、その後はわずか99ドルだという朗報。私がWindowsを使用していて、もう一度選択しなければならない場合は、どちらを選択するのかわからない。

率直に言って、私はこれら2つのツールのいずれかを使用していないプラグイン開発者が、特にWordPressプラグインの開発に比較的慣れていない場合、重度の身体障害を抱えていると感じます。

1
MikeSchinkel

Krumo - スタイル付きPHPデバッグクラス

もう一つ本当にいいことは "krumo" phpクラスです。 1/2分で実装され、あらゆる種類の変数をデバッグする簡単な方法を提供します。

  • オブジェクト
  • 配列、
  • strings/float/integer/etc.

プラス バックトレースを助け、ロードされたクラスやインクルードファイルを表示します。

プラス 無料です。

ダウンロード

Krumo @sourceforge

1
kaiser

最初に、define('WP_DEBUG', false);をwp-config.phpファイルに(ほとんどの人が言っているように)関連する本番サイト(ファイルとデータの両方)の最近のコピーであるローカルインストールに追加します。これにより、作業が迅速、安全、分離されますが、プラグインが実際に使用される少なくとも1つの場所を十分に反映しています。

Debug Bar プラグインと、いくつかのDebug Barアドオン(たとえば、Transients)をプラグインに合わせて追加します。

また、Firefox用のFirebugアドオンを使用します。これは、HTML、CSS、およびJavaScriptの問題を追跡し、レイアウトの奇妙さを調べるのにも優れています。

私は職場と自宅の両方で15年以上コーディング(PHPからSQLまで)のために15年以上使用してきたUltraEditを使用してコーディングしているので、これは私にとってはうまくいきますが、おそらくIDE多くの人々。構文の強調表示、自動補完、コードレイアウト機能、HTMLやCSSのショートカットツールがあり、タイプミスなどを防ぐことができます。ほとんどの場合、これは新しいものへのラッシュでしばしば見落とされる重要な側面である私に親しみをもたらします。マッスルメモリは、コーディングにおいても再現性を高めます。

そしてもちろん、私は通常、コーデックスの適切なページを適切なサンプルの別のタブで開きます。

これらはすべて、さまざまな方法でコーディング、解析、機能、およびレイアウトのエラーを強調するのに役立ち、コーディング方法や、何も問題がない場合にはあまり干渉しません。後で再検討する何かを試したり回避したりする場合は、ほとんどを無視したり、無効にしたりできます。

ああ、適切な位置にあるechoまたはprint_rがキーで何かをチェックするのに何も問題はありません(完了したら削除します)。

0
Lunc

Query Monitor /と組み合わせて Query Monitor Extend WordPressの包括的なデバッグ用(PHPエラー/通知/制限/警告、データベースクエリ、パス、定数、HTTPリクエスト、トランジェント、セッション変数、varダンプ) 。

また、 All Post Meta および Saving What の投稿に関する特定の情報のプラグインも確認してください。

0
Caleb

PHPStormとXdebugは私にとってWordPress開発のために変わるゲームです。今とてもお勧めです。特に彼らのインラインデバッグツールで。

0

私はphpEDとxdebugを使っていますが、私にとっては(そして他の誰かには思われますが)プラグインやテーマのファイルをデバッグすることは不可能です!デバッガはメインまたはオリジナルの「コア」ファイルにあるブレークポイントでのみ停止します。誰かが私を助けることができる?

0
Kreker