ホームページ  >  記事  >  php教程  >  PHP デバッグ ツール -- xdebug

PHP デバッグ ツール -- xdebug

WBOY
WBOYオリジナル
2016-08-08 08:49:481234ブラウズ

以前は Evernote で整理していましたが、現在は外部に移動しました。ローカル デバッグとリモート デバッグに分かれます。この記事は個人的にテストされ、スクリーンショットが撮影されています。ご質問がある場合は、メッセージを残してください。
(インターネット上の多くの先輩方のブログを参考に、元のリンクをメモに保存するのを忘れました。ここにはリンクを掲載できません。ご容赦ください)
#痛いところ

一般に、PHP プロジェクトのデバッグには echo や var_dump() などの関数が使用されますが、プロジェクトが大規模な場合は非常に不便で非効率です。

#準備する

xdebug 拡張機能をインストールします。
公式サイト https://xdebug.org/download.php
Windowsの場合は、対応するバージョンを見つけてダウンロードしてください。Linuxの場合は、php -iの出力結果をhttps://xdebug.org/wizard.phpのページに置くと、その方法が表示されます。次のように非常に便利です。
1. php設定ファイルを変更し、最後に追加します。 zend_extension = "E:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll";
[xデバッグ]
xdebug.auto_trace=オン
xdebug.collect_params=オン
xdebug.collect_vars = オン ;変数を収集します
xdebug.collect_return = On ;戻り値を収集します
xdebug.trace_output_dir="e:/wamp/tmp/debuginfo"
xdebug.remote_enable = オン
xdebug.remote_handler = dbgp
xdebug.remote_host= localhost ; リモート デバッグ サーバーのアドレスに使用されます
xdebug.remote_connect_back = 1 リモートデバッグ用
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.profiler_enable = オン
xdebug.profiler_enable_trigger = オフ
xdebug.profiler_output_name =cachegrind.out.%t.%p
xdebug.profiler_output_dir = "E:/wamp/tmp/debuginfo"
xdebug.show_local_vars=0
xdebug.show_Exception_trace = On 例外追跡をオンにする
xdebugbug.max_nesting_level = 10000
xdebug 拡張機能が有効になっているかどうかを phpinfo で確認します。 サーバーの設定が完了しました!
2、phpstrom設定
このセクションで構成されたポートは、IDE がこのマシン上のポート 9000 をリッスンすることを意味します

プロジェクトの右上隅にあるデバッグ構成内
以下のようにプロジェクトに応じてタイプを選択し、WebサイトのWebアプリケーションを選択し、名前項目をカスタマイズします
サーバー項目はありません。下のボタンをクリックして設定してください
starturl(エントリアドレス)を設定します

完成した構成は次のとおりです:

バグをクリックしてデバッグを有効にすると、次のように、前のステップで設定したデフォルトのブラウザで startURL が開きます。

コードにブレークポイントを設定し、ページを更新すると、デバッグ ウィンドウに詳細情報が表示され、次のような操作ボタンが表示されます。

#最適化された場所
上記のデバッグ手順は非常に面倒です。デバッグしたいときは、プラグイン Chrome プラグイン xdebug ヘルパーをインストール中に設定することをお勧めします。 、次のように:

デバッグが必要なページでプラグインを有効化します

次のように、IDE で電話アイコンを点灯し、監視を開始します。
設定が完了した後、コードでデバッグしたい場合は、ポイントを直接ブレークできます。ブラウザがページにアクセスし、ブレークポイントまで実行すると、IDE がデバッグ情報を監視して情報を表示します。

#xdebug リモート デバッグ

一部のプロジェクトでは、ローカル開発用の環境を構築するのが難しく、リモートで開発とデバッグを行う必要があります。つまり、リモート開発マシン上のコードをローカルでデバッグします。

! 0. リモート デバッグの原則:

左側はIDEAやEclipseなどのIDE、右側はxdebugです。次の手順に従って実行します。
1. IDE はデバッグ ポートをリッスンします。デフォルトは 9000 で、自分で設定できます。
2. ユーザーは、右側の php 環境のサーバーにアクセスします。ここでは、ブラウザを使用してアクセスします (どこからでも実行できます。便宜上、ローカル ブラウザを選択します)。通常の URL。
XDEBUG_SESSION_START=乱数パラメータ。このパラメーターは、デバッグのために IDE の 9000 ポートにアクティブに接続するように xdebug に通知するために使用されます。このパラメーターがないと、xdebug は IDE にアクティブに接続しません。
デバッグはトリガーされません。
3. 接続が成功すると、xdebug が主導して IDE の 9000 ポートに接続します。
xdebug は、IDE がポート 9000 でリッスンしていることをどのようにして知るのでしょうか?
xdebug には、remote_host と Remote_port という 2 つの構成があり、それぞれ IDE の IP アドレスとリスニング ポートを表します。 IDE と xdebug がリスニング ポートをネゴシエートする必要があることがわかります。
ポートの扱いは簡単ですが、IP が変わった場合、xdebug.remote_host 設定を変更する必要はないでしょうか?とても複雑です! ! !
IPがわからなくても大丈夫です。
アドレスを指定し、この IP アドレスをリモートホストとして使用して接続します。

! 1. サーバー環境に xdebug をインストールします (上記の方法)
2 つの最も重要な設定は、xdebug.remote_host と xdebug.remote_connect_back です。
xdebug.remote_host は、
ローカル アドレス
に設定する必要があります。
複数のアドレスはカンマで区切ります
xdebug.remote_connect_back は 1 または on に設定する必要がありますこれを設定すると、remote_host 設定は自動的に無視されます。ローカル IP が自動的に取得される場合、または複数人がいる場合は、これをオンにした方が良いです
サーバーの設定が完了しました。

! 2.IDE設定

(リモート コードのデバッグは、通常、リモート開発と同時に実行されます。リモート デバッグでは、ローカル チャネルとリモート チャネルを開く必要があります。そうしないと、デバッグ情報が受信されません)
> 新しいリモート php インタープリターを作成します
以下に示すように構成が正しい場合:

> 新しいプロジェクトを作成するか、既存のローカル プロジェクトをリモート プロジェクトにマッピングします

> プロジェクトで SFTP を設定します

マッピングを再度設定します

次のようにリモート コードをダウンロードします:

とても疲れたのでスクリーンショットを撮ってください

この時点で、設定を開始したリモートインタープリターを見てください。マッピングを設定したため、以前の警告は消えています。
デバッグの設定、手順は上記と同じですが、パスマッピングの設定が異なります

デバッグを開始します。ブレークポイントブラウザはリモートアドレスにアクセスします

デバッグウィンドウにはすでにデバッグ情報が含まれています。

私の 504 は無視してください。これは他の理由で発生しており、xdebug とは何の関係もありません。これはテスト プロジェクトであり、私は面倒を見るのが面倒だからです ~ ~
リモート プロジェクトを開発するには、sftp を設定しました。通常、ctrl + s を押すと、ローカルの変更がリモート エンドに自動的に同期されます。

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