Как использовать дамп в 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
версия:
- все свалки в стиле
- вы сможете обеспечить максимальный уровень вложенности, чтобы избежать проблем с памятью с крупными объектами
- очень полезные помощники, как
ldd()
, который является псевдонимом для классического "dump and die" - он имеет консольный самосвал (например.
php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request"
) - оно обеспечивает интеграцию с В Symfony Профайлер
- он автоматически обнаруживает классы Symfony, Doctrine, Twig и Silex и связывает их с официальной документацией
ссылки: