Как использовать дамп в TWIG?

Я добавляю для шаблона (index.формат html.веточка) просто:

{{ dump(product) }}

и у меня есть ошибки:

The function "dump" does not exist in AcmeStoreBundle:Default:index.html.twig at line 2 

почему эта функция не включена, и как я могу включить это?

3 ответов


вам нужно настройка расширение отладки:

# app/config/config.yml
services:
    acme_hello.twig.extension.debug:
        class:        Twig_Extension_Debug
        tags:
             - { name: 'twig.extension' }

по ссылке, упомянутой выше, отладка Twig настроена на работу по умолчанию в Symfony 2.5+ работает Twig 1.16+, и определение пользовательского сервиса не требуется. см. этот ответ для получения более подробной информации.


когда вы настраиваете его, как сказал @meze, вы можете отображать все пользовательские переменные:

<h1>Variables passed to the view:</h1>
{% for key, value in _context %}
    {% if key starts with '_' %}
    {% else %}
        <pre style="background: #eee">{{ key }}</pre>
        {{ dump(value) }}
    {% endif %}
{% endfor %}

вы можете использовать мой простой плагин, чтобы удобно проверять свои переменные:

Прутик Дамп Бар


Symfony 2.7 + обновление:

DebugBundle позволяет большую интеграцию компонента в структуру полного стека Symfony. Он включен по умолчанию в среде разработки и тестирования Symfony Standard Edition.

Регистрация компонент VarDumper и интеграция на Twig.

ОТВЕТ:

Я хотел бы предложить неродной решение. Вам понадобится сторонний комплект, но конечный результат будет отличным!

улучшение dump версия:

  1. все свалки в стиле
  2. вы сможете обеспечить максимальный уровень вложенности, чтобы избежать проблем с памятью с крупными объектами
  3. очень полезные помощники, как ldd(), который является псевдонимом для классического "dump and die"
  4. он имеет консольный самосвал (например. php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request")
  5. оно обеспечивает интеграцию с В Symfony Профайлер
  6. он автоматически обнаруживает классы Symfony, Doctrine, Twig и Silex и связывает их с официальной документацией

ссылки: