Commit Graph

370 Commits

Author SHA1 Message Date
HypeMC d56e8e2dba Support short-circuiting in null-safe operator chains 2026-02-06 22:36:57 +01:00
Fabien Potencier 8a0f8acbdf Add support for object and mapping destructuring 2026-01-21 13:21:14 +01:00
Fabien Potencier 76c404ec67 Rename classes 2026-01-21 13:14:16 +01:00
Fabien Potencier bb99af3b39 Assignment operator array destructuring 2026-01-21 08:46:28 +01:00
Fabien Potencier bfbbef05f2 Add the = assignment operator 2026-01-19 16:39:57 +01:00
Fabien Potencier 6904954165 Tweak null-safe operator implementation 2026-01-17 15:11:37 +01:00
Felds Liscia 263c04fd1f Add null-safe operator 2026-01-17 14:57:47 +01:00
Fabien Potencier 94c8bdd6a6 Add === and !== operators 2026-01-14 09:58:48 +01:00
Simon André e4d7915702 Compile 'index' with repr (not string) in EmbedNode
Before this fix, the generated Template code had quotes around the
index (integer) parameter value.
2025-09-25 08:28:51 +02:00
Nicolas Grekas 85a4817128 CS fixes 2025-07-29 10:07:07 +02:00
Fabien Potencier 09f9a22310 Fix wrong array index (again) 2025-03-21 09:42:17 +01:00
Christian Flothmann e31a6e4534 use EmptyNode instead of an Nodes instance without children 2025-02-28 22:12:08 +01:00
Alexandre Daubois 81c1fcc7d6 Fix ModuleNode instanciation when $embeddedTemplates is null 2025-02-28 20:12:40 +01:00
Fabien Potencier 3d760aec1c Avoid polluting ModuleNode::toString() with embedded templates 2025-02-28 08:57:55 +01:00
Fabien Potencier d7702840da Remove $templateName from Template::loadTemplate() 2025-02-21 23:48:41 +01:00
Fabien Potencier 1c6ac163c9 minor #4589 Make in_array() calls strict (alexandre-daubois)
This PR was merged into the 3.x branch.

Discussion
----------

Make `in_array()` calls strict

I propose to add `strict: true` to all calls to `in_array()`, making the calls faster.

Commits
-------

9c6b95f2a6 Make `in_array()` calls strict
2025-02-21 19:06:58 +01:00
Fabien Potencier d72c1c6b1e Fix testing and expression when it evaluates to an instance of Markup 2025-02-21 18:29:32 +01:00
Fabien Potencier 2d84abfd08 Make the defined test implementation more generic 2025-02-21 08:36:21 +01:00
Alexandre Daubois 9c6b95f2a6 Make in_array() calls strict 2025-02-19 15:29:33 +01:00
Fabien Potencier 151aa4ecda Fix CS 2025-02-14 12:57:03 +01:00
Fabien Potencier 3964aeba78 Add a proper prefix spread operator 2025-02-14 11:45:39 +01:00
Fabien Potencier f67078b5c4 Move Operators to ExpressionParsers, deprecate ExpressionParser 2025-02-14 08:38:53 +01:00
Fabien Potencier 42c82e1e9b Extract operators logic from ExpressionParser to their own classes 2025-02-14 08:38:53 +01:00
Fabien Potencier 9ccca47b8a Add UnaryInterface 2025-02-03 21:23:35 +01:00
Fabien Potencier fa1ffb5b29 Add BinaryInterface 2025-02-03 19:21:18 +01:00
Fabien Potencier 7f080086dc Fix wrong array index 2025-02-01 16:22:20 +01:00
Fabien Potencier b0399992be Fix wrong array index 2025-02-01 10:33:30 +01:00
Fabien Potencier 445f74cfe0 [SECURITY] Fix a security issue where escaping was missing when using ?? 2025-01-29 07:52:07 +01:00
Fabien Potencier f594248a40 Fix CS 2025-01-26 11:54:00 +01:00
Fabien Potencier 609767522a Add ForElseNode 2025-01-24 15:25:30 +01:00
Fabien Potencier 9d16de6e3d Deprecate passing $ifexpr to ForNode 2025-01-24 15:01:34 +01:00
Fabien Potencier b6d9dd62ee Fix inheritance logic to be able to use instanceof ContextVariable instead of NameExpression 2025-01-24 13:47:29 +01:00
Fabien Potencier 72c91f6260 minor #4534 Add return type annotations on Twig 3 to prepare Twig 4 (smnandre)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Add return type annotations on Twig 3 to prepare Twig 4

Started to add missing type annotation following `@stof` comment [here](https://github.com/twigphp/Twig/pull/4523#discussion_r1901915880).

Update:  I checked here every class (but one) in the `src` directory.

But you should ~~probably~~ **certainely** have another look.

Remains:
- src/ExpressionParser.php, where i'm not confident enough about the best return types (AbstractExpression|null works almost everytime, but lack some precision)
- extra directory
- tests directory

I'm happy to let them to someone else.... this was less fun than I expected 😅

Commits
-------

82be13429c Add return type annotations on Twig 3 to prepare Twig 4
2025-01-24 11:33:02 +01:00
Simon André 82be13429c Add return type annotations on Twig 3 to prepare Twig 4 2025-01-24 11:32:59 +01:00
Fabien Potencier a998723b70 Fix constant() behavior when used with ?? 2025-01-14 17:55:21 +01:00
Fabien Potencier efd12ef0cc Optimize NameExpression compilation 2025-01-02 12:32:36 +01:00
Simon André 81ebebb210 Remove dead method in ModuleNode
This method is not used after 1.x (it was used in the compileConstructor)https://github.com/twigphp/Twig/blob/b1f009c449e435a0384814e67205d9190a4d050e/src/Node/ModuleNode.php#L206 and has no caller since 2.x https://github.com/twigphp/Twig/blob/19185947ec75d433a3ac650af32fc05649b95ee1/src/Node/ModuleNode.php#L174

ModuleNode is marked final so I guess we can remove it safely.
2025-01-02 07:17:52 +01:00
Simon André dc329fd44e Fix MacroNode $name argument can be overridden
Fix #4515
2024-12-26 10:28:13 +01:00
Fabien Potencier 4c5467f56a Fix the null coalescing operator when the test returns null 2024-12-12 10:17:22 +01:00
Christian Flothmann f90105d0ac fix version numbers for deprecations 2024-12-02 10:21:03 +01:00
Fabien Potencier 616cd06914 Remove deprecate usage of AssignNameExpression in For Node 2024-12-01 10:44:44 +01:00
Fabien Potencier 14fc89ebea Fix CS 2024-11-30 09:42:13 +01:00
Fabien Potencier 44516133e2 Fix CS 2024-11-30 09:33:57 +01:00
Fabien Potencier 4f8ba93600 Enforce AbstractBinary for all binary operators 2024-11-29 16:51:09 +01:00
Fabien Potencier 02cec77619 Simplify EscaperNodeVisitor code 2024-11-28 11:53:08 +01:00
Fabien Potencier c384fb4d8c bug #4475 Fix having macro variables starting with an underscore (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Fix having macro variables starting with an underscore

Closes #4452

Commits
-------

bdb0f3c042 Fix having macro variables starting with an underscore
2024-11-26 21:41:33 +01:00
Fabien Potencier bdb0f3c042 Fix having macro variables starting with an underscore 2024-11-26 16:59:45 +01:00
Fabien Potencier 0176de0fa9 Fix CS 2024-11-26 16:57:59 +01:00
Fabien Potencier c8494b8ff9 feature #4465 Forbid adding Nodes to EmptyNode (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Forbid adding Nodes to EmptyNode

Commits
-------

ff55f590e7 Forbid adding Nodes to EmptyNode
2024-11-21 21:19:17 +01:00
Fabien Potencier ff55f590e7 Forbid adding Nodes to EmptyNode 2024-11-21 08:47:22 +01:00