Устаревание является ключом к обещанию обратной совместимости и обеспечивает плавный процесс обновления приложений Symfony. Тем не менее, вы можете запускать только устаревшие версии в коде PHP, поэтому вы не можете предупреждать пользователей о том, что некоторые шаблоны или блоки Twig будут объявлены устаревшими.
Вот почему в Twig 1.36 и 2.6 добавили новый тег {% deprecated %}
. Во-первых, это позволяет отказаться от целых шаблонов, что используется в следующем примере, чтобы предупредить пользователей о том, что base.twig
будет заменен layout.twig
:
{# base.twig #}
{% deprecated 'The "base.twig" template is deprecated, use "layout.twig" instead.' %}
{% extends 'layout.twig' %}
В дополнение к целым шаблонам, вы также можете отказаться от отдельных блоков:
{% block user_menu %}
{% deprecated 'The "user_menu" block is deprecated, use "user_menu_actions" instead.' %}
{{ block('user_menu_actions') }}
{% endblock %}
{% block user_menu_actions %}
{# ... #}
{% endblock %}
Всякий раз, когда Twig находит тег {% deprecated%}
, он генерирует уведомление об устаревании (через вызов PHP-функции trigger_error()
), чтобы вы могли увидеть эти устаревшие элементы вместе с другими обычными устаревшими версиями Symfony.