ホームページ >バックエンド開発 >PHPチュートリアル >PHPのデバッグ
1. 組み込み API 出力
echo/print
echo はより高速で、カンマで区切られた複数の変数を出力できます
printf/sprintf/vprintf
一部の出力はユーザーまたは戻り値によってフォーマットされます
print_r/ var_dump(var_export)/debug_zval_dump/debug_print_backtrace
出力配列、var_export によって出力された配列は直接コピーできます。debug_zval_dump には参照の数が含まれます。debug_print_backtrace を使用すると、プログラム全体のコール スタックを表示でき、インスタント関数呼び出しの表示に使用されます。便利なスタック エラー発生時の実行コンテキストの表示 パラメータは必要ありません
2. エラー選択制御とログのデバッグ
Php.ini 設定では、主に次のエラー関連のオプションがあります。 error_reporting、display_errors、log_errors、error_log など。ただし、これらのオプションは一般的な構文レベルのデバッグに役立ちます。
display_errors は、PHP スクリプトの実行時にエラー情報を出力するかどうかを設定します。通常、オフラインの開発およびデバッグ環境では、デバッグを容易にするために、display_errors がオンになります。通常はオフに設定されます。オンラインでエラーが報告された場合、どのようにエラーを確認できますか?次に、log_errors オプションが必要になります。このオプションはエラーログを記録するかどうかを設定するもので、error_log にはログのパスを指定します。
エラーのスローと処理は主に、スロー キャッチ メカニズムと同様に、プログラム内で自分でエラーをトリガーしたり、自分でエラーをインターセプトして処理したりできることを意味します。
trigger_error、set_error_handler、set_Exception_handle は、エラースローと組み込み関数を処理するための 3 つの API です。
trigger_error は、基本的に上記の error_reporting 設定と同じです。これは主に、E_USER_ERROR、
E_USER_WARNING、および E_USER_NOTICE の 3 つのレベルのエラーをトリガーします。処理されない場合、エラーが報告されます。 error は error_reporting と似ていますが、ページは表示できませんが、cli の実行は表示できます。
set_error_handler は、エラーが発生したときに使用する処理関数を示します。通常、これは、trigger_error の後のエラー処理に使用され、シンプルで効果的なエラーの識別と記録関数を構築できます。パラメータ errno errstr errfile errline が渡されます。 Set_Exception_handler は set_error_handler に似ていますが、Set_Exception_handler はキャッチされない例外が発生した後に呼び出す必要がある処理メソッドです。
PHP 解析レベルのエラーに加えて、ログ レコードには、ファイル リソースを開くエラー (ファイルが存在しない、権限がない、ファイル形式が正しくない)、リモート サービス リソースへのアクセスの失敗 (ネットワーク障害、プロトコルの誤り、ユーザー名とパスワードの誤りなど。エラーがないと思われる場所にはエラーが隠れている可能性があることを知っておく必要があるため、必ず大量のログを出力してください。
実際に別のファイルに記録する単純なロギング クラスを作成できます。
ログの書き込みには、通常、fopen/fwrite やワンステップの file_put_contents など、よく使用されるファイル操作 API がいくつか含まれます。さらに、PHP はログの書き込みを容易にする特別なインターフェイスも提供します: error_log
3. ブラウザのデバッグ
Web フロントエンドのデバッグには、Firebug はネットワークを監視し、CSS および JS エラーを監視することができる必須のデバッグ ツールです。 FirePHP は Firebug に付属するプラグインで、PHP をデバッグするために使用されます。操作プロセスは非常に簡単です。 PHP 側では、FirePHP が提供する PHP ロギング クラス ライブラリを使用してデバッグ情報を出力します。ブラウザ側では、Firebug + FirePHP を使用して出力されたデバッグ情報を受信し、返された HTTP ヘッダー情報に直接添付されます。この情報はブラウザによって直接表示されず、firephp でのみ表示されるため、デバッグとページ表示の間に競合がないという問題が効果的に達成されます。 (Firefox ブラウザを使用する必要があります)。 FirePHPCore ファイルをサーバー側にデプロイするには、提供されたメソッドを呼び出し、ヘッダーにいくつかの変数を出力します。これには、さまざまなグループ、テーブル、表示効果 (警告情報エラー) が含まれる可能性があります。追跡、例外を表示できます。詳細については、http://www.firephp.org/HQ/Use.htm を参照してください
4. IDE デバッグ
zend はローカル デバッグ、ブレークポイントの設定、ステップバイステップの追跡をサポートしており、zend をインストールできます。リモートデバッグ用のデバッガ。
ZendDebugger は、IDE と通信してブレークポイントを設定し、デバッグする Zend 拡張機能です。基本的な動作原理は次のとおりです。IDE はリスニング デバッグ ポートを設定し、デバッグ中にリモート Web サーバー アドレスを設定し、デバッグ中に URL 情報をトリガーし、2 つのパーティが完了した後に、デバッガ ZendDebugger に IDE の開いているデバッグ ポートにアクセスするように通知します。接続されると、デバッグが完了してネットワーク接続が切断されるまで、メッセージを渡すことによってデバッグ作業が実行されます。ただし、ZendFramework に基づくプログラムにはあまり役に立たないようです。zf には zend_debug が組み込まれているので、試してみるとよいでしょう。
5. APD (高度な PHP デバッガー)
....
6. パフォーマンス分析に Xhprof を使用する
....