質問

Twig(Inside Symfony2)を使用して、多次元配列を含む変数をデバッグしようとしていますが、最大3つの配列のみを出力します。

array
  'Coating' => 
    array
      'type' => string 'single' (length=6)
      'data' => 
        array
          0 => 
            array
              ...
          1 => 
            array
              ...
          2 => 
            array
              ...

一方、print_rは生成されます

Array
(
    [Coating] => Array
        (
            [type] => single
            [data] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [selectable] => 1
                            [name] => Front
                        )

                    [1] => Array
                        (
                            [id] => 7
                            [selectable] => 1
                            [name] => Back
                        )

                    [2] => Array
                        (
                            [id] => 13
                            [selectable] => 1
                            [name] => Both Sides
                        )

                )

        )

)

Twigにデバッグをしてもらいたい理由は、テンプレートがレンダリングされる前にコードを印刷することで、特定のページの出力を完全にごちゃごちゃにすることです。データを簡単に読み取ることができます。

「デバッグ」がデータを切り捨てる理由がわかりません...

編集:デバッグはの使用によるものです {% debug foobar %} 私のアプリの構成に以下を含めることにより、そのタグを有効にすることで:

services:
  twig.extension.debug:
    class: Twig_Extensions_Extension_Debug
    tags: [ { name: 'twig.extension' } ]
役に立ちましたか?

解決

Twig Debug Extension(Class Twig_Extensions_Node_Debug)のソースコードを読んで、var_dumpを切り捨てません。おそらく切り捨てられているのはXdebugです。var_dumpphp.netドキュメントに関するコメントを引用します。

Xdebugがインストールされている場合は、Array要素とオブジェクトプロパティのvar_dump()出力が3レベルの深さに制限されます。

デフォルトを変更するには、xdebug.iniファイルを編集し、次の行を追加します:xdebug.var_display_max_depth = n

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top