旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【cakePHP】var_dumpやprint_rを整形した状態で表示させたい

cakePHPを弄ってるとよく使う出力でprint_rやvar_dumpをして変数の中身を確認することがある。 但し、これで出力したところで出てくるのは

{ ["userData"]=> array(1) { ["TestDao"]=> array(3) { ["USER_ID"]=> string(1) "1" ["NAME"]=> string(9) "test_name" ["NUMBER"]=> string(3) "778" } } ["userListData"]=> array(3) { [0]=> array(1) { ["TestDao"]=> array(7) { ["ID"]=> string(1) "1" ["USER_ID"]=> string(1) "1" ["NAME"]=> string(9) "test_name" ["NUMBER"]=> string(3) "778" ["INSERT_DATETIME"]=> string(19) "2014-05-20 18:45:11" ["UPDATE_DATETIME"]=> string(19) "2014-05-20 18:45:11" ["DELETE_FLAG"]=> string(1) "0" } } [1]=> array(1) { ["TestDao"]=> array(7) { ["ID"]=> string(1) "2" ["USER_ID"]=> string(1) "2" ["NAME"]=> string(10) "test_name2" ["NUMBER"]=> string(3) "123" ["INSERT_DATETIME"]=> string(19) "2014-06-01 21:29:07" ["UPDATE_DATETIME"]=> string(19) "2014-06-01 21:29:07" ["DELETE_FLAG"]=> string(1) "0" } } [2]=> array(1) { ["TestDao"]=> array(7) { ["ID"]=> string(1) "3" ["USER_ID"]=> string(1) "3" ["NAME"]=> string(10) "test_name3" ["NUMBER"]=> string(3) "665" ["INSERT_DATETIME"]=> string(19) "2014-06-01 21:29:19" ["UPDATE_DATETIME"]=> string(19) "2014-06-01 21:29:19" ["DELETE_FLAG"]=> string(1) "0" } } } }

こんな感じで羅列して出てきてしまう。

なので毎回ソースを表示して確認をしていたんだけど、どうも見づらい・・・

そんな時は

print " < pre/ > ";
var_dump($hoge);

みたいな感じにしていたんだけど、どうも一々書くのも面倒くさい。 こんなことしなくてもいいようにCakePHPにはpr関数というものがあります。

cakePHPにはbasics.phpというものがあって、そこに便利関数が。 そこにpr関数があります。

cake/basics.php

/**
 * Print_r convenience function, which prints out < PRE > tags around
 * the output of given array. Similar to debug().
 *
 * @see debug()
 * @param array $var Variable to print out
 * @link http://book.cakephp.org/view/1136/pr
 */
    function pr($var) {
        if (Configure::read() > 0) {
            echo ' < pre > ';
            print_r($var);
            echo ' < /pre > ';
        }
    }

要はprint_r関数にechoで < pre > を挟んでくれてる。 やっていることは同じです。 このpr関数を使うことによって画面上に整形した状態で表示されるのです。

多分ここにprint_r関数をvar_dump関数にすると詳細も見ることができます。

    function vr($var) {
        if (Configure::read() > 0) {
            echo ' < pre > ';
            var_dump($var);
            echo '  ';
        }
    }

みたいな感じでvr関数を作ってあげれば詳細で整形された内容が表示されます。