Deprecated Features

This document lists deprecated features in Twig 3.x. Deprecated features are kept for backward compatibility and removed in the next major release (a feature that was deprecated in Twig 3.x is removed in Twig 4.0).

Functions

  • The twig_test_iterable function is deprecated; use the native PHP is_iterable function instead.

Extensions

  • All functions defined in Twig extensions are marked as internal as of Twig 3.9.0, and will be removed in Twig 4.0. They have been replaced by internal methods on their respective extension classes.

    If you were using the twig_escape_filter() function in your code, use $env->getRuntime(EscaperRuntime::class)->escape() instead.

  • The following methods from Twig\Extension\EscaperExtension are deprecated: setEscaper(), getEscapers(), setSafeClasses, addSafeClasses(). Use the same methods on the Twig\Runtime\EscaperRuntime class instead:

    Before: $twig->getExtension(EscaperExtension::class)->METHOD();

    After: $twig->getRuntime(EscaperRuntime::class)->METHOD();

Nodes

  • The second argument of the Twig\Node\Expression\CallExpression::compileArguments() method is deprecated.

  • The Twig\Node\Expression\NameExpression::isSimple() and Twig\Node\Expression\NameExpression::isSpecial() methods are deprecated as of Twig 3.11 and will be removed in Twig 4.0.

Node Visitors

  • The Twig\NodeVisitor\AbstractNodeVisitor class is deprecated, implement the Twig\NodeVisitor\NodeVisitorInterface interface instead.

Parser

  • The Twig\ExpressionParser::parseHashExpression() method is deprecated, use Twig\ExpressionParser::parseMappingExpression() instead.

  • The Twig\ExpressionParser::parseArrayExpression() method is deprecated, use Twig\ExpressionParser::parseSequenceExpression() instead.

Templates

  • Passing Twig\Template instances to Twig public API is deprecated (like in Environment::resolveTemplate(), Environment::load(), and Template::loadTemplate()); pass instances of Twig\TemplateWrapper instead.