116 lines
4.1 KiB
ReStructuredText
116 lines
4.1 KiB
ReStructuredText
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.
|