Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Deprecated Features
You are reading the documentation for Twig 2.x. Switch to the documentation for Twig 1.x, 3.x.
Warning Twig version 2.x is no longer maintained.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

Deprecated Features

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

PSR-0

  • PSR-0 classes are deprecated in favor of namespaced ones since Twig 2.7.

Inheritance

  • Defining a "block" definition in a non-capturing block in a child template is deprecated since Twig 2.5.0. In Twig 3.0, it will throw a Twig\Error\SyntaxError exception. It does not work anyway, so most projects won't need to do anything to upgrade.

Errors

  • Passing a string as the $source argument on \Twig\Error\Error / Twig\Error\Error constructor is deprecated since Twig 2.6.1. Pass an instance of Twig\Source instead.

Tags

  • The spaceless tag is deprecated in Twig 2.7. Use the spaceless filter instead or {% apply spaceless %} (the Twig\Node\SpacelessNode and Twig\TokenParser\SpacelessTokenParser classes are also deprecated).
  • Using the spaceless tag at the root level of a child template is deprecated in Twig 2.5.0. This does not work as one would expect it to work anyway. In Twig 3.0, it will throw a Twig\Error\SyntaxError exception.
  • The filter tag is deprecated in Twig 2.9. Use the apply tag instead (the Twig\TokenParser\FilterTokenParser classes is also deprecated).
  • Adding an if condition on a for tag is deprecated in Twig 2.10. Use a filter filter or an "if" condition inside the "for" body instead (if your condition depends on a variable updated inside the loop).

Final Classes

The following classes are marked as @final in Twig 2 and will be final in 3.0:

  • Twig\Node\ModuleNode
  • Twig\TwigFilter
  • Twig\TwigFunction
  • Twig\TwigTest
  • Twig\Profiler\Profile

Parser

  • As of Twig 2.7, the \Twig\Parser::isReservedMacroName() / Twig\Parser function is deprecated and will be removed in Twig 3.0. It always returns false anyway as Twig 2 does not have any reserved macro names.

Environment

  • As of Twig 2.7, the base_template_class option on Twig\Environment is deprecated and will be removed in Twig 3.0.
  • As of Twig 2.7, the Twig\Environment::getBaseTemplateClass() and Twig\Environment::setBaseTemplateClass() methods are deprecated and will be removed in Twig 3.0.
  • As of Twig 2.7, the Twig\Environment::getTemplateClass() is marked as being internal and should not be used.
  • As of Twig 2.7, passing a Twig\Template instance to the Twig\Environment::load() and Twig\Environment::resolveTemplate() is deprecated.
  • Depending on the input, Twig\Environment::resolveTemplate() can return a Twig\Template or a Twig\TemplateWrapper instance. In Twig 3.0, this method will always return a Twig\TemplateWrapper instance. You should only rely on the methods of this class if you want to be forward-compatible.

Interfaces

  • As of Twig 2.7, the empty Twig\Loader\ExistsLoaderInterface interface is deprecated and will be removed in Twig 3.0.
  • As of Twig 2.7, the Twig\Extension\InitRuntimeInterface interface is deprecated and will be removed in Twig 3.0.

Extensions

  • As of Twig 2.11, the Twig\Extension\CoreExtension::setEscaper() and Twig\Extension\CoreExtension::getEscapers() are deprecated. Use the same methods on Twig\Extension\EscaperExtension instead.

Miscellaneous

  • As of Twig 2.7, the Twig_SimpleFilter, Twig_SimpleFunction, and Twig_SimpleTest empty classes are deprecated and will be removed in Twig 3.0. Use Twig\TwigFilter, Twig\TwigFunction, and Twig\TwigTest respectively.
  • As of Twig 2.8.2, all usage of Twig\Loader\FilesystemLoader::findTemplate() check for a null return value (same meaning as returning false). If you are overidding Twig\Loader\FilesystemLoader::findTemplate(), you must return null instead of false to be compatible with Twig 3.0.