* 3.x:
Bump version
Add a not about the return value of destructuring
Fix null-safe operator test
Bump version
Prepare the release
Update CHANGELOG
Add support for object and mapping destructuring
Rename classes
Assignment operator array destructuring
Fix doc notes
Fix doc notes
Add the = assignment operator
Fix grammar and spelling mistakes in documentation
This PR was merged into the 3.x branch.
Discussion
----------
Add a not about the return value of destructuring
Commits
-------
c38868cdd0 Add a not about the return value of destructuring
This PR was merged into the 3.x branch.
Discussion
----------
Fix null-safe operator test
Noticed this while working on #4748.
Without `strict_variables`, the tests always pass, even when the null-safe operator is not used.
Commits
-------
a16ac6bd35 Fix null-safe operator test
This PR was merged into the 3.x branch.
Discussion
----------
Add support for object and mapping destructuring
Refs https://github.com/twigphp/Twig/issues/3399
Commits
-------
8a0f8acbdf Add support for object and mapping destructuring
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Assignment operator array destructuring
Follow-up to the introduction of the new = operator, array destructuring.
Refs #3399
Commits
-------
bb99af3b39 Assignment operator array destructuring
This PR was merged into the 3.x branch.
Discussion
----------
Fix grammar and spelling mistakes in documentation
Commits
-------
77cd2fd9f7 Fix grammar and spelling mistakes in documentation
This PR was merged into the 3.x branch.
Discussion
----------
Tweak null-safe operator implementation
Follow-up for #4717
Commits
-------
6904954165 Tweak null-safe operator implementation
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Add null-safe operator
Adds native support for Twig’s null-safe `?.` operator so templates can traverse objects and arrays without defensive plumbing: `{{ user?.address?.city }}` now renders the value when present and stays silent when any hop is `null`.
`?.` reuses the existing `GetAttrExpression` operator, so it should have otherwise the same precedence and behavior as `.`.
Usage cases can be found in the tests:
https://github.com/twigphp/Twig/blob/7d98d45f58df040f41a81f7f8d4cce6c42be781e/tests/ExpressionParserTest.php#L304-L343
Tests cover both the rendered output and the generated PHP.
Let me know if any tests are missing or if the implementation should be done any other way.
Commits
-------
263c04fd1f Add null-safe operator
This PR was merged into the 3.x branch.
Discussion
----------
Update u.rst to clarify truncate method's third argument behavior
Current wording "to preserve whole words" suggests setting the argument to ``true`` preserves words. However, the parameter is ``$cut`` (defaults to ``true`` for cutting at exact length), and ``false`` is required to preserve whole words.
Commits
-------
28c2606be7 Update u.rst to clarify truncate method's third argument behavior
* 3.x:
Fix documentation for getOperators()
bump version
Enhance enum.rst with dynamic case example
Add === and !== operators
Update extends.rst
Fix spread operator behavior
This PR was merged into the 3.x branch.
Discussion
----------
Fix documentation for getOperators()
Closes#4710
Commits
-------
ae51f93f70 Fix documentation for getOperators()
This PR was merged into the 3.x branch.
Discussion
----------
bump version
#4736 added new operators thus require the minor version to be increased
Commits
-------
55cb67f87d bump version
Current wording "to preserve whole words" suggests setting the argument to ``true`` preserves words. However, the parameter is ``$cut`` (defaults to ``true`` for cutting at exact length), and ``false`` is required to preserve whole words.
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Enhance enum.rst with dynamic case example
Added example for dynamic enum case display.
Commits
-------
bcc5ffc301 Enhance enum.rst with dynamic case example
This PR was squashed before being merged into the 3.x branch.
Discussion
----------
Update extends.rst
Semantically correct HTML elements instead of `<div>`itis
Commits
-------
5b63d90bfb Update extends.rst