Я просто добавляю для шаблона (index.html.twig):
{{ dump(product) }}
и у меня ошибка:
The function "dump" does not exist in AcmeStoreBundle:Default:index.html.twig at line 2
Почему эта функция не включена, и как я могу включить это?
Вам нужно настроить расширение для отладки:
# 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 %}
Вы можете использовать мой простой плагин для удобного ознакомления с вашими переменными:
Twig Dump Bar
Symfony 2.7+ ОБНОВЛЕНИЕ:
DebugBundle обеспечивает большую интеграцию компонента в структуру полного пакета Symfony. Он включен по умолчанию в dev и тестовой среде Symfony Standard Edition.
Проверьте компонент VarDumper и его интеграцию на Twig .
СТАРЫЙ ОТВЕТ:
Я хотел бы предложить не-родное решение. Вам понадобится сторонний пакет, но окончательный результат будет замечательным!
Улучшения версии dump
:
ldd()
, который является псевдонимом для классического «дампа и смерти», php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request"
) Здесь ссылки: