Ajaxを使った時のデバッグをdumpで行い、EC-CUBEの開発を効率化

Ajax 利用時の var_dump と dump 関数の使い方

EC-CUBEなどのPHPやSymfonyを使った開発をする時によく使うvar_dumpやdump関数。 デバッグに使う人も多いと思いますが、今回はAjaxを使った時に これらの関数を利用する方法をご紹介したいと思います。

Ajaxを使うと非同期で処理が行われるため、 画面上に内容が出力されるわけではありません。 そこで利用するのが、ブラウザ機能のDevToolsや、 Symfony Profilerというフレームワーク用のデバッグツールになります。

確認の仕方は簡単です。

DevTools (ChromeやEdge Betaなど)

デバッグをしたいページを表示した状態で、 F12キー(Windowsの場合。Macの場合はCommand+Option+Iキー) を押すと表示されます。

その後、Nerwork > XHRのタグを選択し、 デバッグしたいページを再読み込みします。 そしてAjaxを動かす操作をすると、 ファイル一覧の部分に実行したファイルが表示されますので、 該当のファイルをクリックします。 すると、横のPreviewタブ、Responceタブに var_dumpした内容が表示されています。

これを使えば、Ajaxでもお手軽にデバッグができますね。

Symfony Profiler

Symfonyを使っていると、dump関数が利用できます。 var_dumpよりもオブジェクトをきれいに表示してくれたり、 リクエストやレスポンスなど、様々な役に立つ情報を 表示してくれる優れものです。

Symfony Profilerを使っても、 Ajax時にdumpした内容を確認することができます。

Symfonyのデバッグモードを有効にした状態で、Ajaxを動かす操作をします。 そうすると、下部ツールバーのリロードマークのようなところに AjaxリクエストしたURLなどが表示されています。 そこのProfileの項目をクリックすると、そのリクエストの詳細が表示されます。その中で、Debugの項目を見るとdumpした内容を確認することができます。

こちらはdumpした内容だけでなく、 Ajaxで送信したPOSTパラメータなども確認できるので便利です。