読者です 読者をやめる 読者になる 読者になる

ログってなんぼ

日々のメモです

PHP:xdebugでvar_dumpを見やすくしたら内容が一部省略されてしまったので対応したメモ

以下、とあるコードの一部

$con->getAccessToken('https://www.hatena.com/oauth/token', $_GET['oauth_verifier']);
$_SESSION['access_token'] = $con->getToken();
$_SESSION['access_token_secret'] = $con->getTokenSecret();

$response = $con->sendRequest('http://b.hatena.ne.jp/atom/feed', array(), 'GET');
$result = simplexml_load_string($response->getBody());
$result = json_decode(json_encode($result), true);

var_dump($result);

var_dump()の結果

array(4) { ["title"]=> string(28) "junoki のブックマーク" ["id"]=> string(37) "tag:hatena.ne.jp,2005:bookmark-junoki" ["link"]=> array(3) { [0]=> array(1) { ["@attributes"]=> array(3) { ["type"]=> string(9) "text/html" ["rel"]=> string(9) "alternate" ["href"]=> string(29) "http://b.hatena.ne.jp/junoki/" } } [1]=> array(1) { ["@attributes"]=> array(4) { ["rel"]=> string(12) "service.post" ["type"]=> string(22) "application/x.atom+xml" ["href"]=> string(31) "http://b.hatena.ne.jp/atom/post" ["title"]=> string(28) "junoki のブックマーク" } } [2]=> array(1) { ["@attributes"]=> array(3) { ["rel"]=> string(4) "next" ["type"]=> string(22) "application/x.atom+xml" ["href"]=> string(43) "http://b.hatena.ne.jp/junoki/atomfeed?of=20" } } } ["entry"]=> array(20) { [0]=> array(6) { ["title"]=> string(91) "Amazon.co.jp、3Dプリンタストア開設 (VentureNow) - Yahoo!ニュース BUSINESS" ["link"]=> array(3) { [0]=> array(1) { ["@attributes"]=> array(3) { ["type"]=> string(9) "text/html" ["rel"]=> string(7) "related" ["href"]=> string(65) "http://newsbiz.yahoo.co.jp/detail?a=20130920-00010000-biz_vnow-nb" } } [1]=> array(1) { ["@attributes"]=> array(3) { ["type"]=> string(9) "text/html" ["rel"]=> string(9) "alternate" ["href"]=> string(56) "http://b.hatena.ne.jp/junoki/20130920#bookmark-162360238" } } [2]=> array(1) { ["@attributes"]=> array(4) { ["type"]=> string(22) "application/x.atom+xml" ["rel"]=> string(12) "service.edit" ["title"]=> string(91) "Amazon.co.jp、3Dプリンタストア開設 (VentureNow) - Yahoo!ニュース BUSINESS" ["href"]=> string(41) "http://b.hatena.ne.jp/atom/edit/162360238" } } } ["author"]=> array(1) { ["name"]=> string(6) "junoki" } ["summary"]=> string(54) "http://t.co/g6tsCc6etT、3Dプリンタストア開設" ["id"]=> string(47) "tag:hatena.ne.jp,2005:bookmark-junoki-162360238" ["issued"]=> string(19) "2013-09-20T21:33:22" } [1]=> array(6) { ["title"]=> string(141) "Amazon Web Services ブログ: AWS re:Invent ブートキャンプのご紹介 (参加ツアーの申し込み締切は5日後の9/25です!)" ["link"]=> array(3) { [0]=> array(1) { ["@attributes"]=> array(3) { ["type"]=> string(9) "text/html" ["rel"]=> string(7) "related" ["href"]=> string(80) "http://aws.typepad.com/aws_japan/2013/09/training-bootcamps-at-aws-reinvent.html" } } [1]=> array(1) { ["@attributes"]=> array(3) {

相変わらず見難いのう・・

echo "<pre>";var_dump($result);echo "</pre>";

こんな感じにすれば

array(4) {
  ["title"]=>
  string(28) "junoki のブックマーク"
  ["id"]=>
  string(37) "tag:hatena.ne.jp,2005:bookmark-junoki"
  ["link"]=>
  array(3) {
    [0]=>
    array(1) {
      ["@attributes"]=>
      array(3) {
        ["type"]=>
        string(9) "text/html"
        ["rel"]=>
        string(9) "alternate"
        ["href"]=>
        string(29) "http://b.hatena.ne.jp/junoki/"
      }
    }
    [1]=>
    array(1) {
      ["@attributes"]=>
      array(4) {
        ["rel"]=>
        string(12) "service.post"
        ["type"]=>
        string(22) "application/x.atom+xml"
        ["href"]=>
        string(31) "http://b.hatena.ne.jp/atom/post"
        ["title"]=>
        string(28) "junoki のブックマーク"
      }
    }

まあまあ見やすい。

xdebug導入

まあトレースログとかEclipseとかからのリモートデバッグなどなど他にも色々捗ることもあるのでxdebugでvar_dumpを拡張しよう、って時もある。

var_dump($result);

ふつうにvar_dumpしてブラウザから見てみる。

f:id:Okisanjp:20160715120715p:plain

色も付いて見やすくなった。けど配列の深いところが省略されてしまった・・・

xdebugに設定を追加

ココにちゃんと書いてあった・・・ドキュメントはちゃんと読もう。。。

Xdebug: Documentation

xdebug.var_display_max_children Type: integer, Default value: 128 Controls the amount of array children and object's properties are shown when variables are displayed with either xdebug_var_dump(), xdebug.show_local_vars or through Function Traces. To disable any limitation, use -1 as value. This setting does not have any influence on the number of children that is send to the client through the Remote Debugging feature. xdebug.var_display_max_data Type: integer, Default value: 512 Controls t ...



という訳で、php.inに設定を追加してhttpdを再起動。

xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.var_display_max_depth = -1

とりあえず全部無制限にしてみた。この辺りは適宜調整が必要か。大量のデータの時エライことになりそうなので。

いい感じに

f:id:Okisanjp:20160715120816p:plain