2011-11-30 86 views
0

我試圖用嫩枝(內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 foobar %}通過包含在我的應用程序的配置下的啓用該標籤:

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

回答

3

我剛剛閱讀了twig調試擴展的源代碼(類Twig_Extensions_Node_Debug),它不截斷var_dump。這可能是截斷了XDebug:我舉的var_dump php.net文檔上的註釋:

記住,如果你已經安裝了XDebug它將限制的var_dump() 輸出數組元素和對象屬性來3層深。

要更改默認設置,編輯您xdebug.ini文件,並添加 folllowing行:xdebug.var_display_max_depth = N

+0

完美......原來如此!謝謝! – Nick