Отладочные усеченные массивы Twig? - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь использовать 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 foobar %} с включенным тегом посредством включения следующего в конфигурацию моего приложения:

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

1 Ответ

3 голосов
/ 30 ноября 2011

Я только что прочитал исходный код расширения отладки ветки (класс Twig_Extensions_Node_Debug), и он не усекает var_dump.Вероятно, это усечение xdebug: я привожу комментарий к документации var_dump php.net:

Имейте в виду, если у вас установлен xdebug, он ограничит вывод var_dump () элементов массива и объектасвойства до 3-х уровней.

Чтобы изменить значение по умолчанию, отредактируйте файл xdebug.ini и добавьте следующую строку: xdebug.var_display_max_depth = n

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...