PHP/Laravel – console.log

ちょっと小回りが利かない

webアプリケーション開発の過程で変数の内容をちょっと確認したいとき、Laravelならdump()dd()が使えるが、エラーの場合は内容が確認できなかったり、確認の都度実行を停止しなければならなかったりする。

実行させながら変数の内容を表示させるには、var_dump()などの関数でブラウザーに内容を表示させるのが一般的だが、表示が崩れ、ページが遷移すると確認できない。

JSを使った簡易な対応

Railsのようにサーバーコンソールへの出力やJavascriptのconsole.logのように、ページとは別のところで変数の内容を確認したいとき、標準出力に振り向けるような設定もあるようだが、以下のコードでとりあえずブラウザーのコンソールへの表示ができる。

文字列や配列の表現中にシングルクォートやダブルクォートが含まれるとエラーが出る場合もあるので、変数を結合するときにjson_encode()を使っている。

実行例

以下はPHPでの実行例で、上のコードを関数化している。Laravelならヘルパー、staticクラス、staticメソッドのトレイトなどで準備することが考えられる。

以下は実行の結果生成されたHMTL例で、HTMLドキュメント出力の前段だとhead要素内、出力後だとbody要素内にscript要素が配置される。

以下はコンソールへの出力部分。これで実行を止めずに変数の確認ができる。

Laravelの場合

コントローラーのメソッドに定義

コントローラーでメソッドを定義する方法で可能。

  • コントローラーのstaticメソッドでconsole_log()を定義
  • コントローラー内は$this->console_log()で呼び出し
  • ビューでは{{ namespace\controller::console_log() }}で呼び出し

コントローラーの例

ビューの例

ルーティングからConsoleLogController@show()が実行されると、ブラウザーにビューが表示され、F12キーで以下の表示が確認できる。

ヘルパーコントローラーを作成する方法

以下のようにヘルパーコントローラーをapp/Http/Controllers下に作成し、staticメソッドとしてconsole_log()を定義。

php artisan make:controller HelperController

コントローラーのアクションでは以下の様に呼び出す。

ビューでは以下の様に呼び出す。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です