Вопрос

Я пытаюсь использовать Twig (Inside 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' } ]
Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top