CakePHP 2.3 Model、Controllerの見たい変数の中身をログ出力
2014/11/14
CakePHPで Model、Controllerの変数をログに出力
変数の情報をログに出力する方法
CakePHPのプログラムを組んでいるとき、Modelの中の変数がどうなっているのかを見たいなぁ、思うことがあると思いますが、その方法を確認しましたので、メモをしておきます。
CakePHPの Search Pluginの使い方を探しているときに下記のサイトを見つけました。
http://kamakurasoft.net/blog/?p=1479
ここに、Modelの中の変数をログとして出力する方法が書かれていましたので、参考にさせていただきました。
例を挙げます。
今回の例は、「CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索」で作成をしました IDを IN句による検索をする場合の処理をベースに作成しました。
この処理の際に function内の変数を見る場合などは下記の様に「$this->log( $data );」「$this->log( $query );」を設定します。
そうすることで、「/app/tmp/logs/error.log」にエラーメッセージとともにログが出力されます。
————–(/app/Model/User.php)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php class User extends AppModel { : : // 検索対象のフィルタ設定 public $filterArgs = array( array('name' => 'id', 'type' => 'subquery', 'method' => 'searchIn', 'field' => 'User.id'), array('name' => 'username', 'type' => 'like', 'field' => 'User.username'), array('name' => 'nickname', 'type' => 'like', 'field' => 'Profile.nickname'), ); function searchIn($data = array()) { $this->log( $data ); $data['id'] .= ',20'; $query = mb_ereg_replace ( '[^0-9]', ',', $data['id'] ); $query = mb_ereg_replace ( ',+', ',', $query ); $query = mb_ereg_replace ( '^,', '', $query ); $query = mb_ereg_replace ( ',$', '', $query ); $this->log( $query ); return $query; } : : } |
————–
Modelの中は、そもそも変数をどのように処理しているのかが分からない場合が多く、マニュアル、もしくは、解説していただいているサイトがないとどうしようもない場合が多々あります。
それでも、こうやってログとして変数の中身を確認できることで変数の中身の理解が進み、より安心してプログラムが書けるようになると思います。
この「$this->log( $query );」の記述を controllerに置くこともできます。
それによって、Viewに表示させるのではなくログに出力させる方法で編集の確認をすることも可能になります。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP 2.3 コマンドラインからPHPのシェル実行の方法解説
CakePHP 2.3でコマンドラインから CakePHPで記述した処理を実行する方法を解説します。
-
-
CakePHP4のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。ユーザ新規登録の流れを紹介しつつ、テンプレートファイル、設定情報ファイルの場所とそれらをカスタマイズする方法を説明します。
-
-
CakePHP 2.x系 Viewでのコメントの記述方法など
CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。
-
-
CakePHP3のfriendsofcake/searchでブックマークチュートリアルのタグ検索を実装
CakePHP3のCookbookにあるブックマークチュートリアル。ここで紹介されているタグで検索する処理を検索プラグイン「friendsofcake/search」で実現する方法を解説しました。
-
-
CakePHP4で定数の設定と呼び出し方法の解説(defineとConfigure)
CakePHP4で定数を設定、使用する方法を解説。定数定義はdefineとConfigureを使用する方法を解説。また、bootstrap.phpに直接記述する方法と別のファイルにする方法を解説。
-
-
URL短縮サービス「TTTオンライン(https://ttt.onl)」公開
URL短縮サービス「TTTオンライン(https://ttt.onl)」を公開。メールやSNSでは使いにくい長いURLを短いURLに変換するサービス。QRコードも。Google URL Shortenerが2019年3月にサービス終了。
-
-
CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()
CakePHP4でデフォルトのレイアウトファイル「default.php」は管理側に使用し、これとは別のデザインを公開側のページに設定したい、を実装する方法を解説。
-
-
CakePHP 2.3 Search Pluginで検索処理 その6ORDER、sortソートの機能
CakePHPの検索プラグイン Search Pluginの検索処理の中で order、ソートについての解説です。
-
-
CakePHP3で値を入力直後にバリデーションする方法解説
CakePHP3でバリデーションの実行を保存する時から入力情報を受け取るときに変更する処理の解説。CakePHP3ではnewEntity()の処理でバリデートするため1行追加で対応可能。
-
-
CakePHP 2.3 ID以外のカラムでアソシエーション(連携)をさせる場合
ID以外のカラムでアソシエーション(連携)させるための考え方とサンプルソースを用いての説明を行っています。