私はプラグインのオーサリングは初めてで、デバッグに苦労していました。
私は多くのエコーを使用しましたが、それはずさんでandいです。
プラグインを含めてサイト全体を実行できるデバッガーを備えたIDEがこれを実現するより良い方法があると確信しています。
私はプラグインのオーサリングは初めてで、デバッグに苦労していました。
私は多くのエコーを使用しましたが、それはずさんでandいです。
プラグインを含めてサイト全体を実行できるデバッガーを備えたIDEがこれを実現するより良い方法があると確信しています。
回答:
wp-config.phpに移動して、に変更define('WP_DEBUG', false);
しdefine('WP_DEBUG', true);
ます。また、Andrew NacinのLog Deprecated Noticesプラグインをインストールします。
昔ながらの方法であるerror_log()
ingとvar_dump
ing をデバッグします。それが私にとって最も効率的な方法であることがわかりましたerror_log
。配列とオブジェクトの作成が苦痛になる可能性があるため、さまざまなタイプのデータを処理するためのラッパー関数がいくつかあります。また、print_r()
in を使用することは、aにない場合は読みにくいことがあり<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を変更する必要があることに注意してください。
LinuxではAptane IDEを、WindowsではUltraEditを使用しますが、これにはPHPパーサーもあります。また、でWP_DEBUG
定義された定数でxDebugからのすべてのヒントを表示しwp-config.php
ます。
このトピックに関する私の投稿も参照してください。コメントして、開発ツールに関するフィードバックを送ってください。
FirePHPをチェックすることをお勧めします。デバッグ情報をFirefoxのFirebugにHTTPヘッダーを介して送信できます。これにより、通常、デバッグ出力がよりきれいになります。
別の本当に素晴らしいことは、 "krumo" phpクラスです。½分で実装され、あらゆる種類の変数をデバッグする簡単な方法を提供します。
さらに、バックトレースに役立ち、ロードされたクラスまたはインクルードされたファイルとすべてをオンデマンドで表示します。
さらに、無料です!
クルモ@sourceforge
ThemeForestで購入できるLogPressという13ドルのプラグインを使用していますが、これは絶対に神からの送信です。プラグインとサイトに関連するすべてをデバッグできます。Firebugコンソールのログ記録などをサポートします。私はそれなしでは生きていけません。それがこのプラグインの使用量です。
このプラグインはおそらく私が今まで使った中で最高のお金であり、Wordpressプラグインの開発で数え切れないほどの時間を節約しました。
まずdefine('WP_DEBUG', false);
、関連する本番サイト(ファイルとデータの両方)の最近のコピーであるローカルインストールに(ほとんどの人が言っているように)wp-config.phpファイルに追加します。これにより、作業が迅速、安全、分離されますが、プラグインが実際に使用される少なくとも1つの場所を十分に反映しています。
また、いくつかのデバッグバーアドオン(たとえば、一時的なもの)のいくつかと一緒に、デバッグバープラグインを追加します(プラグインに応じて)。
また、Firefox用のFirebugアドオンを使用します。これは、HTML、CSS、およびJavaScriptの問題を追跡し、レイアウトの異常を調べるのにも役立ちます。
私は職場と自宅の両方で15年以上コーディング(PHPからSQLまで)のために15年以上使用してきたUltraEditを使用してコーディングしているので、これは私にとってはうまく機能しますが、多くの人々。構文の強調表示、自動補完、コードレイアウト機能、HTMLやCSSのショートカットツールがあり、タイプミスなどを防ぐことができます。ほとんどの場合、これは私に親しみをもたらします。これは、新しいものへの急ぎで見落とされることが多い重要な側面です。マッスルメモリは、コーディングにおいても再現性を高めます。
そしてもちろん、私は通常、適切な見本の別のタブでコーデックスから適切なページを開いています。
これらはすべて、さまざまな方法でコーディング、解析、機能、およびレイアウトのエラーを強調するのに役立ち、コーディング方法や何も間違いがない場合はあまり干渉しません。後で再訪する何かを試したり回避したりする場合、ほとんどは無視または非アクティブにすることができます。
ああ、適切に配置されたechoまたはprint_rがキーで何かをチェックしても問題はありません(完了時に削除する限り)。
PHPStormとXdebugは、WordPress開発のために私を変えるゲームです。強くお勧めします。特にインラインデバッグツールを使用します。
WP_DEBUG
Johnが推奨しているように、falseに設定すると、スクリプト内で何が問題になっているのか(もしあれば)かなりよくわかります。次に、Dreamweaverで編集し、ブラウザーでCtrl + Sを押してからF5を押して、変更をすぐに表示します。