PHPのデバッグ

Jun 23, 2016 pm 02:37 PM

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 を使用する

....

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles