2014
04/04

WP_DEBUGをtrueにすると何が行われるのか

wp-config.phpに以下の様な記述を追加すると、デバッグモードとして動作するようになります。

wp-config.php の編集
バージョン 2.3.1 で追加された WP_DEBUG オプションを有効化すると、一部のエラーや警告のレポートを制御し WP_DEBUG_DISPLAY と WP_DEBUG_LOG の設定が使えるようになります。デフォルト値は false になっています。

こうすると画面にエラーが表示されるようになるのですが、これってdisplay_errosを設定するのと何が違うの?と気になったので簡単ですが調べてみました。

余談ですがPHPでエラーメッセージを表示させたい場合は以下のような記述をphp.iniかソースに追加します。

ADs

行われることその1.error_reportingとdisplay_errosの設定

以下の処理が実行されます。

実際のソースはwp-includes/load.phpにあります。
なお、WP_DEBUG_DISPLAYはデフォルトではtrueなので、WP_DEBUGのみの設定の場合は「ini_set( ‘display_errors’, 1 );」となります。

行われることその2.@によるエラー抑制の分岐

PHPは式の前に「@」をつけるとエラーメッセージを表示させないようにすることができます。
WP_DEBUGがtrueの場合、一部の式の「@」を無しにしてエラーを吐くようにします。

@演算子を外す例いくつか

行われることその3.非推奨関数に対して警告メッセージを出す

ここが単なるdisplay_errosによる設定と大きく違うところではないかと思うのですが、非推奨関数に対してtrigger_error関数によるエラーメッセージを出力します。

Function Reference
(deprecated)と書いてあるものが非推奨

ただこの非推奨関数についてのエラーメッセージは「deprecated_function_trigger_error」「deprecated_file_included」「deprecated_argument_trigger_error」「doing_it_wrong_trigger_error」というフィルターフックによりテーマ側から無効にすることができます。

実際のソースは以下のようにWP_DEBUGの真偽判定に加えて上記4つのフィルターフックによるif文となっています。

まとめ

長らくdisplay_errorsでいいじゃん、と思ってましたが、非推奨関数への注意は便利だと思うので積極的に使っていきたいです。

ADs

Post Comments

メールアドレスが公開されることはありません。

Comments

コメントはまだありません。