Twig的调试截断数组?

时间:2011-11-30 15:46:04

标签: php symfony twig

我正在尝试使用Twig(在Symfony2中)来调试包含多维数组的变量,但它最多只能输出三个数组:

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”会截断数据......

编辑:调试是通过使用{% debug foobar %}启用该标记,通过在我的应用配置中包含以下内容来启用:

services:
  twig.extension.debug:
    class: Twig_Extensions_Extension_Debug
    tags: [ { name: 'twig.extension' } ]

1 个答案:

答案 0 :(得分:3)

我刚刚阅读了twig调试扩展的源代码(类Twig_Extensions_Node_Debug),但它没有截断var_dump。可能是截断的xdebug:我引用了对var_dump php.net文档的评论:

  

请记住,如果安装了xdebug,它将限制var_dump()   数组元素和对象属性的输出为3级深度。

     

要更改默认值,请编辑xdebug.ini文件并添加   以下行:xdebug.var_display_max_depth = n