ホームページ > バックエンド開発 > PHPの問題 > PHPのデバッグ方法にはどのようなものがありますか?

PHPのデバッグ方法にはどのようなものがありますか?

青灯夜游
リリース: 2023-03-15 12:28:02
オリジナル
10253 人が閲覧しました

PHP のデバッグ (デバッグ) 方法は次のとおりです: 1. PHP コードに echo、var_dump、print_r、および exit ステートメントを追加し、デバッグのためにブラウザーを通じて情報を出力します。 2. デバッグには Xdebug を使用します。 3.デバッグ用のコンソール端末経由。

PHPのデバッグ方法にはどのようなものがありますか?

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター

PHP で一般的に使用されるデバッグ方法

ブラウザから情報を出力してデバッグする

方法

echo、var_dump、print_r を追加して終了します。 、ブラウザで出力を表示します。

利点と欠点

利点:

  • シンプルで使いやすく、プラグインをインストールする必要はありません
  • 自分が書くコード、またはより使い慣れたフレームワークの場合は、次のように使用できます。

欠点:

  • マルチブランチ ロジックの場合は、大量のコードを使用するか、複数回試行してください。
  • 慣れていないロジックでは、完全な実行プロセスを反映できません。
  • デバッグ ステートメントをプロジェクトに残すことは可能です
  • シングル ステップは実行できません

ヒント

デバッグ時の, 出力変数をフォーマットするには、多くの場合、プロジェクトに独自の dump() 関数を実装する必要があります。 Composer を使用すると、symfony/var-dumper パッケージの dump() 関数をグローバルにインストールでき、プロジェクトを変更せずにすべてのプロジェクトで利用できるようになります。

  • グローバル インストールsymfony/var-dumper パッケージ:
    デフォルトでは、${HOME}/.config/composer## にインストールされます。 # directory
  • composer global require symfony/var-dumper
    ログイン後にコピー
  • php.ini ファイルを変更し、PHP コードを実行する前に指定されたファイルを含めます
  • auto_prepend_file = ${HOME}/.config/composer/vendor/autoload.php
    ログイン後にコピー

Xdebug デバッグを使用する

XDebug は C/S 構造で、クライアントは PHP にインストールされた Xdebug、サーバーは IDE にインストールされたプラグインで、通信に DBGP プロトコルを使用します。 。 PHP がスクリプトを実行すると、Xdebug プラグインを通じてデバッグ情報が IDE に送信され、IDE から制御信号が受信されます。

Xdebug for PHP をインストールして有効にし、2 つが通信できるように IDE の Xdebug プラグインをセットアップする必要があります。

利点と欠点

    シングルステップのデバッグと任意の変数値の取得をサポート
  • 複雑な構成、プラグインをインストールするには IDE が必要ins
  • ブラウザとの連携をサポートします。リクエストには
  • XDEBUG_SESSION_START パラメータを含める必要があります。

Web アプリのデバッグ

Web アプリケーションの場合、Xdebug デバッグ モードを有効にするには、ブラウザによって送信されるリクエストに追加のフラグを追加する必要があります。 GET/POST/Cookie パラメーターに

XDEBUG_SESSION_START=session_name を追加すると、Xdebug がこのリクエストをデバッグして IDE に接続する必要があることを認識できるようになります。

しかし、毎回手動で設定するのは面倒なので、操作を簡略化するには次の 2 つの方法があります:

    IDE が提供する方法を使用します。 PhpStorm については、「実行デバッグ構成を使用した PHP Web アプリケーションのデバッグ」を参照してください。これを使用する場合は、IDE で Web サーバーを設定し、次に PHP Web アプリケーションをセットアップし、「デバッグ」ボタンをクリックしてデバッグを開始する必要があります。そうすると、IDE が自動的にブラウザを開いて URL を入力し、
  • XDEBUG_SESSION_START を追加します。 =セッション名
  • ブラウザ プラグインを使用し、プラグインのデバッグ スイッチをオンにすると、プラグインはリクエストに対応する Cookie を自動的に取り込むことができます。 Chrome の場合は、Xdebug ヘルパーをインストールできます。

コンソール ターミナルを使用したデバッグ (CLI モード)

スケジュールされたタスクや単体テストなどの非 Web アプリケーションの場合、コンソールで直接デバッグできます。

PhpStorm で、

Alt F12 ショートカット キーを使用してコマンド ライン ターミナルを開きます。ただし、IDE に表示できるターミナルは 1 つだけであるため、デバッグをオンにした後のデバッグ ターミナルがコマンド ライン ターミナルを覆ってしまうため、別のコマンド ライン ターミナルを開くことをお勧めします (DOS ウィンドウまたは Windows では PowerShell を使用できます) )。

方法と原則

Web アプリケーションは GET/POST/Cookie パラメーター フラグを使用してリクエストをデバッグしますが、非 Web アプリケーションはコマンド ライン ターミナルで環境変数を設定することによってデバッグを可能にします。 . .

2 つのステップ:

    環境変数を設定します
  • XDEBUG_CONFIG="idekey=session_name"、この idekey は php.ini## と一致する必要があります。 # idekey 設定の一部は同じです。 コマンド ライン ターミナルでスクリプトを実行します。実行すると、IDE のデバッグ ターミナルが呼び出され、シングル ステップのデバッグが可能になり、出力結果がコマンド ライン ターミナルにリアルタイムで表示されます。

PHPのデバッグ方法にはどのようなものがありますか?IDE は通常、ショートカット操作を提供します。PHPStorm については、「PhpStorm を使用した PHP CLI スクリプトのデバッグ」を参照してください。

IDE を通じてデバッグを開始した後、IDE は Xdebug プラグインを起動して特定のポート (PhpStorm のデフォルトは 9000 ですが、これは PHP-FPM と競合するため 9001 に変更できます) をリッスンして取得します。 PHP サーバーから返されたデバッグ情報。

D:\lnmp\php72\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 D:\lihongfeng\workspace\untitled\index.php
ログイン後にコピー

设置、查看和释放环境变量

  • Linux
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo $XDEBUG_CONFIG // 查看环境变量
unset XDEBUG_CONFIG // 删除环境变量
ログイン後にコピー
  • Windows
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo %XDEBUG_CONFIG% // 查看环境变量
set XDEBUG_CONFIG // 查看环境变量
set XDEBUG_CONFIG= // 删除环境变量
ログイン後にコピー

推荐学习:《PHP视频教程

以上がPHPのデバッグ方法にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート