LaravelベースのWebサイトをデバッグするためにVSCodeを正常に構成した人はいますか?数多くの記事やチュートリアルをたどった後、VSCodeに「XDEBUGをリッスン」するように依頼できるようになりましたが、実行できませんでした通常 VSスタイルのデバッグF5キーを押すだけで、お気に入りのブラウザーで現在のWebサイトを起動でき、完全なVisual StudioやEclipseの場合と同じように、ブレークポイントに達するとVSCodeに割り込むことができます。
私のマシンには次のものが正しくセットアップされています:
launch.json
でどの起動構成を使用する必要があるかわかりません。 PHPデバッグ拡張機能に付属する2つの構成は、次のようになります。
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
最初の構成は正しく機能しますが(VSCodeでそのモードでデバッグを開始し、ブラウザーでWebサイトを個別に起動すると、ブレークポイントに到達します)、2番目の構成は失敗します。 Controller
クラス(Laravelフレームワーククラス)が見つからないことを示しています。名前空間でクラス名を修飾しても効果はありません。
私の推測では、これは起動構成のセットアップ方法と関係があると思います。アクティブなスクリプトを独立したユニットとして起動しようとするため、異なるファイルにあるフレームワーククラスの定義を見つけることができません。どういうわけか、単一のアプリケーションとしてWebサイトの立ち上げを提供する必要があります。
誰かがそれを成功させて、私がここで欠けているものを教えてくれますか?
ついにそれが機能するようになりました。他の誰かがそれを必要とするならば、ここに物があります。
セットアップ launch.json
2つの構成を並行して起動するようにします。これは、いわゆる複合構成を介して行われます。これがPHP + XDEBUGとEdgeブラウザを起動する私のものです:
{
"version": "0.2.0",
"compounds": [
{
"name": "Launch & Debug",
"configurations": [ "Launch Program", "Launch localhost" ]
}
],
"configurations": [
{
"type": "php",
"request": "launch",
"name": "Launch Program",
"cwd": "${workspaceRoot}",
"port": 9000
},
{
"name": "Launch localhost",
"type": "Edge",
"request": "launch",
"url": "http://localhost/public",
"webRoot": "${workspaceRoot}"
}
]
}