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
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する
CakePHP3のkeywordsとdescriptionを設定する方法の解説。CakePHP3にはmetaタグを編集するHTMLヘルパーが用意されているためそれを利用すればOK!ポイントはブロック化を有効にすること。
-
-
CakePHP 2.x系 Viewでのコメントの記述方法など
CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。
-
-
CakePHP3のインストールでURL rewriting……のエラーが!その解決方法解説
CakePHP3をインストールしたら URL rewriting is not properly configured.のエラーが。原因は.htaccessが有効になっていないこと。httpd.confに設定を追加すればOK。
-
-
CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法
CakePHPで「CakeDC/Users」などルーティングを行うプラグインを利用するときに、favicon.icoやapple-touch-icon-144-precomposed.pngがNotFoundエラーになることがある。その対処方法の解説。
-
-
CakePHP4のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)
CakePHP4の英語のメッセージを日本語化(多言語化)する手順を解説。オリジナルのメッセージを作成する方法やプログラムで文言を追加する場合の対応なども解説。
-
-
CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3で生の SQL文を実行する方法を解説。クリエビルダーを使う場合は TableRegistryを利用するが、SQLを実行する場合は ConnectionManagerを使う。プリペアードステートメントの使用方法も解説。
-
-
CakePHP 2.3 Search Pluginで検索処理 その5入力項目に複数項目入力した場合の AND検索、OR検索
CakePHPの検索プラグイン Search Pluginの検索処理の中で複数項目を入力した場合の AND検索、OR検索についての解説です。
-
-
CakePHP3で保存前にバリデーション結果を取得する2つの方法
CakePHP3でデータベースに値を保存する前にバリデーションを行い、その結果によって処理を振り分ける方法について解説。「$topic->errors()」と「$topic->hasErrors()」の2つの方法がある。
-
-
CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法
CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。
-
-
CakePHPのバリデーションを入力値・項目の条件によって変える方法を解説
入力された値によってバリデーション(入力チェック)の内容を切り替える。その処理をCakePHPで実装する方法を解説。条件ごとに unset関数を使ってバリデーションを削除する、という方法を採る。