This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Extract the escaping logic to a runtime
Commits
-------
ead768a4 -
e4a78534 Add missing `@deprecated` tags
d728d1b8 Add more information about migrating away from twig_escape_filter()
70b2e3ca Fix compat with older versions of PHP
84bff064 Extract the escaping logic to a runtime
This PR was merged into the 3.x branch.
Discussion
----------
Fix capturing output from extensions that still use echo
Fix#4039
Commits
-------
8c43456a Fix capturing output from extensions that still use echo
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
[Doc] Correct Order & Explanation on precedence
Following this [issue](https://github.com/twigphp/Twig/issues/3714), i worked on it trying to make it simple and easy to understand
Indeed order of the precedence was not good for ``b-and``, ``b-xor`` and ``b-and``.
Code [here ](https://github.com/twigphp/Twig/blob/3.x/src/Extension/CoreExtension.php#L280) to understand. I also added additional explanations.
Commits
-------
01e0b7ce [Doc] Correct Order & Explanation on precedence
This PR was merged into the 3.x branch.
Discussion
----------
Respect coding standard in documentation
From https://twig.symfony.com/doc/3.x/coding_standards.html
```
Put exactly one space after the : sign in hashes and , in arrays and hashes:
{{ [1, 2, 3] }}
{{ {'foo': 'bar'} }}
```
Commits
-------
609620e8 Respect coding standard in documentation
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
synchronize sourceContext
I have some debugging extensions that need the template name from various nodes in a `NodeVisitor`. Currently this is guaranteed for the nodes created from parsing the template. This ensures that the `SourceContext` is also set for nodes created by `NodeVisitors` modifying the node tree.
I am not sure if it is a good idea to always set the `SourceContext` on a child node or if this should only set it if it is not set.
Commits
-------
350670a3 synchronize sourceContext
This PR was merged into the 3.x branch.
Discussion
----------
fix: #4033 add missing unwrap call on TemplateWrapper instance
Commits
-------
6c631526fix: #4033 add missing unwrap call when a TemplateWrapper instance can be present
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Ensure Lexer:: is always initialized
I'm using Symfony Bridge `LintCommand` with `--show-deprecations` flag.
While Twig is initializing, if an deprecation error is thrown by `Lexer::getOperatorRegex()` method, the `Lexer::$regexes` will remain `null` but `$isInitialized` will be set to TRUE.
This PR ensures that `$regexes` will be initialized.
Commits
-------
5a79652e Ensure Lexer:: is always initialized
This PR was merged into the 3.x branch.
Discussion
----------
change extended DI extension class
Commits
-------
b61a4224 change extended DI extension class
This PR was merged into the 3.x branch.
Discussion
----------
fix: #4029 CaptureNode iterator_to_array preserveKeys false
Commits
-------
f7121a23fix: #4029 when use_yield is true CaptureNode use iterator_to_array preserveKeys argument to false
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Add twig_escape_filter_is_safe() as deprecated.
Fix for #4031
Commits
-------
1170144f Add twig_escape_filter_is_safe() as deprecated.