質問するログイン新規登録
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

1回答

319閲覧

[初心者]xdebugの設定のxdebug.start_with_request = triggerについて

DENPA

総合スコア1

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2024/08/07 13:30

0

0

実現したいこと

現在、xdebug.start_with_request = triggerにする差し迫った必要性が現在あるわけではありませんが、汎用的な設定にしておきたいので、triggerに設定しておいて値を設定した時のみに、その値でトリガーされるようにしたいです。

発生している問題・分からないこと

windows10,xampp,vscode,php(v8.2.12),xdebug(v3.3.2)を使用しています。
xdebugの設定でxdebug.start_with_request = triggerを設定するとデバッグが開始されません。
triggerにする時にだけ機能させる事はできないのでしょうか?

該当のソースコード

現在、php.iniに以下の様に設定おり、この段階では機能します。 これに表題の項目を設定すると機能しません。 ******************************** [xdebug] xdebug.mode=debug,develop,profile,trace xdebug.var_display_max_data=512 xdebug.var_display_max_children=128 xdebug.var_display_max_depth=3 xdebug.start_with_request=yes xdebug.trigger_value=StartProfileForMe xdebug.output_dir=C:\xampp\xdebug_output xdebug.trace_output_name=trace.%t xdebug.client_host = localhost xdebug.client_discovery_header = "HTTP_X_FORWARDED_FOR,REMOTE_ADDR" xdebug.log=C:\xampp\tmp\xdebug.log xdebug.log_level = 10 xdebug.discover_client_host = ture xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD xdebug.dump.GET = * xdebug.dump_globals = true xdebug.dump_once = true xdebug.file_link_format="vscode://file/%f:%l" xdebug.collect_assignments = true xdebug.collect_params = true xdebug.collect_return = ture ********************************* vscodeのlaunch.jsonは以下になっています。 ********************************* { // IntelliSense を使用して利用可能な属性を学べます。 // 既存の属性の説明をホバーして表示します。 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 0, "runtimeArgs": [ "-dxdebug.start_with_request=yes" ], "env": { "XDEBUG_MODE": "debug,develop", "XDEBUG_CONFIG": "client_port=${port}" } }, { "name": "Launch Built-in web server", "type": "php", "request": "launch", "runtimeArgs": [ "-dxdebug.mode=debug", "-dxdebug.start_with_request=yes", "-S", "localhost:0" ], "program": "", "cwd": "${workspaceRoot}", "port": 9003, "serverReadyAction": { "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started", "uriFormat": "http://localhost:%s", "action": "openExternally" } } ] } *********************************

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

xdebugの英語のマニュアルを見て、あると便利そうな機能をピックアップしてきたのですが、
英語が得意でない上に、googleで調べても例が少なく、よくわかりませんでした。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

先ずはこちらの資料を読んでみては?
xdebugのマニュアル(Step Debugging)

英語が得意でない
Google先生に翻訳を依頼すれば(酷い訳かもしれないけれど)大凡の意味は解ると思います。

xdebug.start_with_request = triggerを設定するとデバッグが開始されません。
何らかのトリガーが無いとデバッグセッションが始まりませんから、正常な動作です。
上記の資料にある様に何らかの方法でデバッグを有効にするのですが、ブラウザの場合は、ブラウザ別のヘルパーを利用するのがお手軽です。これを準備しておけば、必要なタイミングでこれを使ってデバッグセッションを開始できます。

現在、php.iniに以下の様に設定おり
当方のxdebug関連の設定は以下だけです。
プロファイラもトレーサも使っていないので...
Docker環境下であるので、ホスト側のIPは明示してます。

xdebug.mode = develop,debug xdebug.client_host = host.docker.internal

投稿2024/08/07 15:35

tezcello

総合スコア443

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問