# `deprecated`

Twig generates a deprecation notice (via a call to the `trigger_error()` PHP function) where the `deprecated` tag is used in a template:

    {# base.html.twig #}
    {% deprecated 'The "base.html.twig" template is deprecated, use "layout.html.twig" instead.' %}
    {% extends 'layout.html.twig' %}

You can also deprecate a macro in the following way:

    {% macro welcome(name) %}
        {% deprecated 'The "welcome" macro is deprecated, use "hello" instead.' %}

        ...
    {% endmacro %}

Note that by default, the deprecation notices are silenced and never displayed nor logged. See Displaying Deprecation Notices to learn how to handle them.

Added in version 3.11: The `package` and `version` options were added in Twig 3.11.

You can optionally add the package and the version that introduced the deprecation:

    {% deprecated 'The "base.html.twig" template is deprecated, use "layout.html.twig" instead.' package='twig/twig' %}
    {% deprecated 'The "base.html.twig" template is deprecated, use "layout.html.twig" instead.' package='twig/twig' version='3.11' %}

Note

Don’t use the `deprecated` tag to deprecate a `block` as the deprecation cannot always be triggered correctly.