From d475a92c83d13951fbcadd20e64b8ebca82bfc7e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 24 Apr 2019 21:02:08 +0200 Subject: [PATCH] removed the deprecated filter tag --- CHANGELOG | 1 + doc/advanced.rst | 5 -- doc/filters/spaceless.rst | 5 -- doc/tags/apply.rst | 3 - doc/tags/filter.rst | 26 -------- doc/templates.rst | 5 -- src/Extension/CoreExtension.php | 2 - src/TokenParser/FilterTokenParser.php | 59 ------------------- .../Fixtures/tags/filter/basic.legacy.test | 12 ---- .../tags/filter/json_encode.legacy.test | 10 ---- .../Fixtures/tags/filter/multiple.legacy.test | 12 ---- .../Fixtures/tags/filter/nested.legacy.test | 19 ------ .../Fixtures/tags/filter/scope.legacy.test | 13 ---- .../tags/filter/with_for_tag.legacy.test | 15 ----- .../tags/filter/with_if_tag.legacy.test | 31 ---------- 15 files changed, 1 insertion(+), 217 deletions(-) delete mode 100644 doc/tags/filter.rst delete mode 100644 src/TokenParser/FilterTokenParser.php delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/basic.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/json_encode.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/multiple.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/nested.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/scope.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/with_for_tag.legacy.test delete mode 100644 test/Twig/Tests/Fixtures/tags/filter/with_if_tag.legacy.test diff --git a/CHANGELOG b/CHANGELOG index a5367c216..9aee99015 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ * 3.0.0 (2019-XX-XX) + * removed the "filter" tag * added type hints everywhere * changed Environment::resolveTemplate() to always return a TemplateWrapper instance * removed Template::__toString() diff --git a/doc/advanced.rst b/doc/advanced.rst index adbc109ab..74ba948ea 100644 --- a/doc/advanced.rst +++ b/doc/advanced.rst @@ -395,11 +395,6 @@ Most of the time though, a tag is not needed: Much better than creating a tag as you can **compose** filters. {% endapply %} - .. note:: - - The ``apply`` tag was introduced in Twig 2.9; use the ``filter`` tag with - previous versions. - * If your tag does not output anything, but only exists because of a side effect, create a **function** that returns nothing and call it via the :doc:`filter ` tag. diff --git a/doc/filters/spaceless.rst b/doc/filters/spaceless.rst index d3c32a7a2..b4a8b1311 100644 --- a/doc/filters/spaceless.rst +++ b/doc/filters/spaceless.rst @@ -27,11 +27,6 @@ on large amounts of HTML: {# output will be
foo
#} -.. note:: - - The ``apply`` tag was introduced in Twig 2.9; use the ``filter`` tag with - previous versions. - This tag is not meant to "optimize" the size of the generated HTML content but merely to avoid extra whitespace between HTML tags to avoid browser rendering quirks under some circumstances. diff --git a/doc/tags/apply.rst b/doc/tags/apply.rst index 05698301b..cfb1398e4 100644 --- a/doc/tags/apply.rst +++ b/doc/tags/apply.rst @@ -1,9 +1,6 @@ ``apply`` ========= -.. versionadded:: 2.9 - The ``apply`` tag was added in Twig 2.9. - The ``apply`` tag allows you to apply Twig filters on a block of template data: .. code-block:: jinja diff --git a/doc/tags/filter.rst b/doc/tags/filter.rst deleted file mode 100644 index d1128b676..000000000 --- a/doc/tags/filter.rst +++ /dev/null @@ -1,26 +0,0 @@ -``filter`` -========== - -.. note:: - - As of Twig 2.9, you should use the ``apply`` tag instead which does the - same thing except that the wrapped template data is not scoped. - -Filter sections allow you to apply regular Twig filters on a block of template -data. Just wrap the code in the special ``filter`` section: - -.. code-block:: jinja - - {% filter upper %} - This text becomes uppercase - {% endfilter %} - -You can also chain filters and pass arguments to them: - -.. code-block:: jinja - - {% filter lower|escape('html') %} - SOME TEXT - {% endfilter %} - - {# outputs "<strong>some text</strong>" #} diff --git a/doc/templates.rst b/doc/templates.rst index 668f06e48..c07222deb 100644 --- a/doc/templates.rst +++ b/doc/templates.rst @@ -179,11 +179,6 @@ To apply a filter on a section of code, wrap it in the Go to the :doc:`filters` page to learn more about built-in filters. -.. note:: - - The ``apply`` tag was introduced in Twig 2.9; use the ``filter`` tag with - previous versions. - Functions --------- diff --git a/src/Extension/CoreExtension.php b/src/Extension/CoreExtension.php index 393945f0f..fa1f17e7a 100644 --- a/src/Extension/CoreExtension.php +++ b/src/Extension/CoreExtension.php @@ -54,7 +54,6 @@ use Twig\TokenParser\DeprecatedTokenParser; use Twig\TokenParser\DoTokenParser; use Twig\TokenParser\EmbedTokenParser; use Twig\TokenParser\ExtendsTokenParser; -use Twig\TokenParser\FilterTokenParser; use Twig\TokenParser\FlushTokenParser; use Twig\TokenParser\ForTokenParser; use Twig\TokenParser\FromTokenParser; @@ -180,7 +179,6 @@ final class CoreExtension extends AbstractExtension new IncludeTokenParser(), new BlockTokenParser(), new UseTokenParser(), - new FilterTokenParser(), new MacroTokenParser(), new ImportTokenParser(), new FromTokenParser(), diff --git a/src/TokenParser/FilterTokenParser.php b/src/TokenParser/FilterTokenParser.php deleted file mode 100644 index 91ec5ff1b..000000000 --- a/src/TokenParser/FilterTokenParser.php +++ /dev/null @@ -1,59 +0,0 @@ -parser->getVarName(); - $ref = new BlockReferenceExpression(new ConstantExpression($name, $token->getLine()), null, $token->getLine(), $this->getTag()); - - $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag()); - $this->parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3); - - $body = $this->parser->subparse([$this, 'decideBlockEnd'], true); - $this->parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3); - - $block = new BlockNode($name, $body, $token->getLine()); - $this->parser->setBlock($name, $block); - - return new PrintNode($filter, $token->getLine(), $this->getTag()); - } - - public function decideBlockEnd(Token $token) - { - return $token->test('endfilter'); - } - - public function getTag() - { - return 'filter'; - } -} diff --git a/test/Twig/Tests/Fixtures/tags/filter/basic.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/basic.legacy.test deleted file mode 100644 index 1efedb94a..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/basic.legacy.test +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -"filter" tag applies a filter on its children ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter upper %} -Some text with a {{ var }} -{% endfilter %} ---DATA-- -return ['var' => 'var'] ---EXPECT-- -SOME TEXT WITH A VAR diff --git a/test/Twig/Tests/Fixtures/tags/filter/json_encode.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/json_encode.legacy.test deleted file mode 100644 index 7ec6be3bd..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/json_encode.legacy.test +++ /dev/null @@ -1,10 +0,0 @@ ---TEST-- -"filter" tag applies a filter on its children ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter json_encode|raw %}test{% endfilter %} ---DATA-- -return [] ---EXPECT-- -"test" diff --git a/test/Twig/Tests/Fixtures/tags/filter/multiple.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/multiple.legacy.test deleted file mode 100644 index 0e8d251e1..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/multiple.legacy.test +++ /dev/null @@ -1,12 +0,0 @@ ---TEST-- -"filter" tags accept multiple chained filters ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter lower|title %} - {{ var }} -{% endfilter %} ---DATA-- -return ['var' => 'VAR'] ---EXPECT-- - Var diff --git a/test/Twig/Tests/Fixtures/tags/filter/nested.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/nested.legacy.test deleted file mode 100644 index 1d894fea6..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/nested.legacy.test +++ /dev/null @@ -1,19 +0,0 @@ ---TEST-- -"filter" tags can be nested at will ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter lower|title %} - {{ var }} - {% filter upper %} - {{ var }} - {% endfilter %} - {{ var }} -{% endfilter %} ---DATA-- -return ['var' => 'var'] ---EXPECT-- - Var - Var - Var diff --git a/test/Twig/Tests/Fixtures/tags/filter/scope.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/scope.legacy.test deleted file mode 100644 index 6a7720e84..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/scope.legacy.test +++ /dev/null @@ -1,13 +0,0 @@ ---TEST-- -"scope" tag creates a new scope ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter spaceless %} -{% set item = 'foo' %} -{% endfilter %} -{{ item }} ---DATA-- -return [] ---EXCEPTION-- -Twig\Error\RuntimeError: Variable "item" does not exist in "index.twig" at line 5. diff --git a/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.legacy.test deleted file mode 100644 index 76985646b..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/with_for_tag.legacy.test +++ /dev/null @@ -1,15 +0,0 @@ ---TEST-- -"filter" tag applies the filter on "for" tags ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter upper %} -{% for item in items %} -{{ item }} -{% endfor %} -{% endfilter %} ---DATA-- -return ['items' => ['a', 'b']] ---EXPECT-- -A -B diff --git a/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.legacy.test b/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.legacy.test deleted file mode 100644 index 74a4bb577..000000000 --- a/test/Twig/Tests/Fixtures/tags/filter/with_if_tag.legacy.test +++ /dev/null @@ -1,31 +0,0 @@ ---TEST-- -"filter" tag applies the filter on "if" tags ---DEPRECATION-- -The "filter" tag is deprecated since Twig 2.9, use the "apply" tag instead. ---TEMPLATE-- -{% filter upper %} -{% if items %} -{{ items|join(', ') }} -{% endif %} - -{% if items.3 is defined %} -FOO -{% else %} -{{ items.1 }} -{% endif %} - -{% if items.3 is defined %} -FOO -{% elseif items.1 %} -{{ items.0 }} -{% endif %} - -{% endfilter %} ---DATA-- -return ['items' => ['a', 'b']] ---EXPECT-- -A, B - -B - -A