現在、PHP REST API プロジェクトに取り組んでいます。私はVSCodeが初めてで、現在IDEの機能を試しています。開発状況では、CLI を使用して、組み込みの PHP サーバーを使用して API を実行します。
php -S localhost:8000 -t public
ファイルを使用して、VSCode からこの組み込みサーバーを実行できるように起動構成を作成しようとしました.vscode/launch.json
。最初はうまくいきましたが、デバッグ セッションを終了してもビルトイン サーバーが強制終了されていないことに気付きました。それはまだ実行されます。また、起動構成を次に実行しても再起動しません。
そこで、この投稿postDebugTask
に従って、起動構成のプロパティを使用してphpプロセスを強制終了しようとしました。最終的に次のファイルになりました。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Run",
"type": "php",
"request": "launch",
"preLaunchTask": "Run PHP built-in server",
"postDebugTask": "Kill PHP built-in server",
"port": 9000
}
]
}
タスク.json
{
// @see https://code.visualstudio.com/docs/editor/tasks
"version": "2.0.0",
"tasks": [
{
"label": "Run PHP built-in server",
"type": "shell",
"command": "php -S localhost:8000 -t public"
},
{
"label": "Kill PHP built-in server",
"type": "shell",
"command": "kill $(ps aux | grep php | awk '{print $1}')"
}
]
}
問題は、デバッグ セッションを停止すると、「キル タスク」が実行されないことです。理由はありますか?ターミナルでphpコマンドがプロンプトを返さないという事実と何か関係があるのでしょうか?
編集:preLaunchTask
組み込みのPHPサーバーを起動するために使用すると、xdebugが機能しないことも発見しました。9000 でのポート バインドが早すぎる可能性があります。
起動プロファイルを介して組み込みサーバーを起動することは、悪い考えのように思え始めています...