Посмотреть шаблон слоя, где вы только представляете то, что вам дали, это хорошо, и все, но как вы узнаете, что доступно? Есть ли в TWIG функциональность "список всех определенных переменных"? Есть ли способ сбросить переменную?
Решение, которое я нашел путем поиска, состояло в том, чтобы определить функцию, где я мог бы использовать свои существующие инструменты отладки php , внедряя функцию , но все ссылки, которые я нашел на это, включают эти две хорошие строки кода, но нигде не указано, куда разместите их. Исходя из того, что им нужна определенная переменная $ loader , я попытался /app/config/autoload.php, но там был неправильный тип $ loader. Где я могу разместить php-код для добавления функции ветки?
{{ dump() }}
чтобы сбросить все переменные, он возвращает пустую страницу. Есть ли другой способ сбросить переменную?dump
, очевидно,dump
проблема не в этом. Я бы предложил опубликовать новый вопрос, если вы не можете понять это иначе.Вы можете использовать
debug
тег, который задокументирован здесь .Редактировать: Начиная с Twig 1.5, это устарело и заменено новой
dump
функцией (обратите внимание, теперь это функция, а не тег). Смотрите также: принятый ответ выше.источник
Unknown tag name "debug"
, расширьте свою конфигурацию (либо в глобальной,config.yml
либоconfig_dev.yml
), как описано здесь: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Так что я заработал, отчасти немного хакерский:
twig: debug: 1
вapp/config/config.yml
Добавьте это к config_dev.yml
sudo rm -fr app/cache/dev
print_r()
, я открылvendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
и изменилprint_r(
наd(
PS. Я все еще хотел бы знать, как / где получить среду $ twig для добавления фильтров и расширений.
источник
twig: debug: 1
потому что он наследует эту информацию из среды вашего фронт-контроллера. В противном случае вы могли бы непреднамеренно вывести отладочную информацию в вашу рабочую среду. Пока вы работаете в среде разработки, он включен по умолчанию и отключен в вашей среде разработки.Если вы используете Twig в своем приложении в качестве компонента, вы можете сделать это:
Тогда в ваших шаблонах:
источник
$twig = new Twig_Environment($loader, array(...
?Если вы используете Twig в качестве отдельного компонента, вот несколько примеров того, как включить отладку, поскольку маловероятно, что функция dump (variable) будет работать сразу после установки.
Standalone
Это было найдено по ссылке, предоставленной icode4food
кремнезем
источник
Дамп всех пользовательских переменных:
Вы можете использовать мой плагин, который сделает это за вас (и приятно отформатирует вывод):
Twig Dump Bar
источник
{{ dump() }}
не работает для меняPHP
дроссели. Уровень вложения слишком глубокий, я думаю.Все, что вам действительно нужно для
debug
шаблонов Twig, если вы используете,debugger
- это расширение, подобное этому .Тогда вам нужно просто установить точку останова и позвонить
{{ inspect() }}
туда, где вам это нужно. Вы получаете ту же информацию, что и с,{{ dump() }}
но в вашем отладчике.источник
Поскольку Symfony> = 2.6, есть хороший компонент VarDumper , но он не используется
dump()
функцией Twig .Чтобы перезаписать его, мы можем создать расширение:
В следующей реализации не забудьте заменить пространства имен.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
источник
Полный рецепт здесь для быстрого ознакомления (обратите внимание, что все шаги являются обязательными):
1) при создании экземпляра Twig передайте опцию отладки
2) добавить расширение отладки
3) Используйте его, как указал @Hazarapet Tunanyan
или
или
источник
Для отладки шаблонов Twig вы можете использовать оператор отладки .
Там вы можете установить настройки отладки явно.
источник
Unknown tag name "debug"
ошибки.Вы можете редактировать
и измените
the var_dump()
функции на\Doctrine\Common\Util\Debug::dump()
источник
Поскольку большинство хороших программистов на PHP любят использовать XDebug, чтобы фактически выполнять код и наблюдать за изменениями переменных в режиме реального времени, это
dump()
похоже на шаг назад к плохим старым временам.Вот почему я сделал расширение Twig Debug и поместил его на Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Затем добавьте расширение. Если вы не используете Symfony, вот так:
Если да, то, как это в ваших службах YAML config:
После регистрации вы можете сделать это в любом месте шаблона веточки:
Теперь вы можете использовать XDebug, выполнение будет приостановлено, и вы сможете увидеть все свойства как контекста, так и среды.
Радоваться, веселиться! :-D
источник
Вы можете использовать функцию дампа и распечатать это так
но есть и одна приятная вещь: если вы не установите аргумент для функции dump, он выведет все доступные переменные , например
источник
Если вы находитесь в среде, где вы не можете использовать эту
dump
функцию (например, opencart), вы можете попробовать:источник