Commit Graph

641 Commits

Author SHA1 Message Date
Fabien Potencier 62f0a96b68 Introduce a way to test Twig callables at compile time 2024-10-08 18:41:34 +02:00
Fabien Potencier aca4d22e89 Allow arrow functions everywhere 2024-10-07 23:04:29 +02:00
Fabien Potencier 4f7d487a17 Fix deprecation dep feature 2024-10-06 23:17:05 +02:00
Fabien Potencier 247658c730 feature #4367 Trigger deprecations when using "??" and "not" without explicit parentheses when precedence will change in 4.0 (fabpot)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Trigger deprecations when using "??" and "not" without explicit parentheses when precedence will change in 4.0

Closes #3387
Closes #3642

Commits
-------

2081b1ff74 Deprecate using the not unary operator without parenthesis
f4aacafd78 Deprecate using ?? without explicit parentheses
2024-10-02 14:17:10 +02:00
Fabien Potencier 2081b1ff74 Deprecate using the not unary operator without parenthesis 2024-10-02 14:16:34 +02:00
Fabien Potencier f4aacafd78 Deprecate using ?? without explicit parentheses 2024-10-01 21:58:05 +02:00
HypeMC 8893944e0c Add support for logical xor operator 2024-10-01 20:43:59 +02:00
Fabien Potencier 816c510cef Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence 2024-09-30 13:51:47 +02:00
Fabien Potencier c599125a39 Unify error messages when a filter expects a mapping/sequence 2024-09-29 18:29:04 +02:00
Fabien Potencier 0f47aa7d1f Fix tests 2024-09-29 18:22:59 +02:00
Fabien Potencier 0da899d911 Use get_debug_type() everywhere 2024-09-29 18:08:29 +02:00
Fabien Potencier 1488238e32 Fix ignored parenthesis in expressions 2024-09-28 23:47:01 +02:00
Nicolas Grekas cff6f1ca80 Implement the enum function 2024-09-27 08:23:21 +02:00
Fabien Potencier 8b278986b8 Deprecate using Node directly, introduce EmptyNode and Nodes 2024-09-27 07:42:41 +02:00
Fabien Potencier d9d8bb0df3 Add support for inline comments 2024-09-27 07:32:09 +02:00
Fabien Potencier f4b17ce8fa bug #4336 Fix template name in error for an unknown dynamic extends called from an include (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Fix template name in error for an unknown dynamic extends called from an include

Closes #3265

The code was introduced in #1529, but removing it nowadays does not break any existing test.

Review ignoring whitespace.

Commits
-------

4824f2a4a3 Fix template name in error for an unknown dynamic extends called from an include
2024-09-26 20:59:11 +02:00
Fabien Potencier 57147e7513 feature #4353 Add support for accessing class constants with the dot operator (nicolas-grekas)
This PR was merged into the 3.x branch.

Discussion
----------

Add support for accessing class constants with the dot operator

This PR allows accessing class constants from objects: `{{ foo.SOME_CONSTANT }}`. This should nicely replace the `constant()` function when an object is at hand, and is actually needed to make the `enum` function work in #4352.

Commits
-------

1ea0452323 Add support for accessing class constants with the dot operator
2024-09-26 20:37:32 +02:00
Fabien Potencier 5038a30c72 bug #4351 Fix getting a property on an object casted to an array (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Fix getting a property on an object casted to an array

Closes #3371

Commits
-------

7d5269e100 Fix getting a property on an object casted to an array
2024-09-26 20:35:25 +02:00
Nicolas Grekas 1ea0452323 Add support for accessing class constants with the dot operator 2024-09-26 18:06:21 +02:00
Fabien Potencier 7d5269e100 Fix getting a property on an object casted to an array 2024-09-26 17:55:00 +02:00
Fabien Potencier fea6cc344e minor #4346 Remove useless assign in compiled code (ruudk)
This PR was merged into the 3.x branch.

Discussion
----------

Remove useless assign in compiled code

It's already unset / initialized on catch.

Having it this way, is a bit easier for me when analyzing this in TwigStan.

Commits
-------

5c73c6695c Remove useless assign in compiled code
2024-09-26 15:10:13 +02:00
Ruud Kamphuis 7256713c86 Improve escape deprecation message 2024-09-26 15:09:41 +02:00
Ruud Kamphuis 5c73c6695c Remove useless assign in compiled code 2024-09-26 14:36:01 +02:00
Fabien Potencier f83c844b7d Add start/end time accessors on Profile 2024-09-26 08:19:38 +02:00
Fabien Potencier 09790a7542 Fix 'ignore missing' when used on an 'embed' tag 2024-09-26 07:55:44 +02:00
Fabien Potencier 588a5c5676 bug #4339 Fix the possibility to override an aliased block (via use) (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Fix the possibility to override an aliased block (via use)

Closes #3709

Commits
-------

955611d5bb Fix the possibility to override an aliased block (via use)
2024-09-25 22:17:13 +02:00
Fabien Potencier c203b27db2 feature #4334 Improve how trim behaves (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Improve how trim behaves

Closes #3651

Commits
-------

10c3142d3b Improve how trim behaves
2024-09-25 22:10:15 +02:00
Fabien Potencier 955611d5bb Fix the possibility to override an aliased block (via use) 2024-09-25 22:08:16 +02:00
Fabien Potencier 3ddab4f8b4 feature #4338 Add template cache hot reload (fabpot)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Add template cache hot reload

Closes #3880

This PR achieves 2 things in the minimum amount of code (in 2 commits):

* It adds a new `RemovableCacheInterface` that allows cache to be removed.
* It adds a memory cache to allow updating existing templates in the same process (think FrakenPHP for instance) without polluting the permanent cache.

Commits
-------

00ba8046b0 Add test
dca5099aad Add hot cache reload for templates
786a67b1a9 Add RemovableCacheInterface
2024-09-25 18:40:47 +02:00
Fabien Potencier 00ba8046b0 Add test 2024-09-25 17:28:51 +02:00
Fabien Potencier 85c2ba5147 Add some tests 2024-09-24 22:13:47 +02:00
Fabien Potencier 4824f2a4a3 Fix template name in error for an unknown dynamic extends called from an include 2024-09-24 20:55:19 +02:00
Fabien Potencier efc527ea65 minor #4333 Optimize compiled code for "set" tag (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Optimize compiled code for "set" tag

Commits
-------

9855e35d44 Optimize compiled code for "set" tag
2024-09-24 17:04:08 +02:00
Fabien Potencier 9855e35d44 Optimize compiled code for "set" tag 2024-09-24 16:47:02 +02:00
Fabien Potencier 10c3142d3b Improve how trim behaves 2024-09-24 13:35:40 +02:00
Fabien Potencier 3930d90842 Add more tests 2024-09-24 13:28:51 +02:00
Fabien Potencier d1beac4dfa Add compile-time checks for the "matches" operator 2024-09-21 10:29:51 +02:00
Fabien Potencier 52ded207d3 Allow Twig callable arguments to use camel or snake names 2024-09-18 19:19:20 +02:00
Fabien Potencier 8d1af0fc03 Let's no deprecate the attribute function yet 2024-09-13 13:56:05 +02:00
Fabien Potencier 333638e8e6 Allow to use a dynamic attribute on the . operator via () 2024-09-12 21:44:45 +02:00
Fabien Potencier 112de8dcfa Add support for argument unpacking 2024-09-11 11:55:09 +02:00
Fabien Potencier ccfe6ad26e Stringify dynamic mapping keys 2024-09-11 08:58:53 +02:00
Fabien Potencier 9369a48c53 Deprecate the sandbox tag 2024-09-10 22:41:00 +02:00
Fabien Potencier 41103dcdc2 Fix a security issue when an included sandboxed template has been loaded before without the sandbox context 2024-09-10 12:40:14 +02:00
Fabien Potencier 34ae0311d9 Improve the way one can deprecate a Twig callable 2024-09-09 21:14:40 +02:00
Fabien Potencier 11f68e2aeb Fix a security issue when an included sandboxed template has been loaded before without the sandbox context 2024-09-09 19:04:10 +02:00
Fabien Potencier 795720230c Fix test 2024-09-09 11:10:45 +02:00
Fabien Potencier 995e7c2270 Fix CS 2024-09-09 08:49:09 +02:00
Fabien Potencier 45e167a514 Add more tests 2024-09-09 08:41:21 +02:00
Fabien Potencier ef58791fa4 Add the possibility to reset globals 2024-09-07 16:47:00 +02:00