Commit Graph

6816 Commits

Author SHA1 Message Date
Fabien Potencier b93eb3ce58 Refactor code 2024-09-30 14:05:03 +02:00
Fabien Potencier 9f8c52d022 Add some type hints 2024-09-30 14:02:17 +02:00
Fabien Potencier a0d52fd41f feature #4363 Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence

See https://wiki.php.net/rfc/concatenation_precedence for the related change in PHP 7.4.

Commits
-------

816c510cef Deprecate using ~ with + or - in an expression without using parentheses to clarify precedence
2024-09-30 13:59:28 +02:00
Fabien Potencier e80f8fe3b1 minor #4366 Change some type hints to be more precise (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Change some type hints to be more precise

Commits
-------

43b6e098df Change some type hints to be more precise
2024-09-30 13:52:50 +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 43b6e098df Change some type hints to be more precise 2024-09-30 13:47:10 +02:00
Fabien Potencier fa8050b24f feature #4364 Deprecate not passing AbstractExpression args to most constructor arguments for classes extending AbstractExpression (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Deprecate not passing AbstractExpression args to most constructor arguments for classes extending AbstractExpression

Commits
-------

824143d5e5 Deprecate not passing AbstractExpression args to most constructor arguments for classes extending AbstractExpression
2024-09-30 12:26:54 +02:00
Fabien Potencier 824143d5e5 Deprecate not passing AbstractExpression args to most constructor arguments for classes extending AbstractExpression 2024-09-30 12:15:47 +02:00
Fabien Potencier b46ca43f61 Remove obsolete method 2024-09-30 12:00:38 +02:00
Fabien Potencier e49768a3d7 minor #4365 Add support for detecting if an expression had explicit parentheses (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Add support for detecting if an expression had explicit parentheses

It's going to help with operator precedence changes and their related deprecation notices.

Commits
-------

d133ab7e70 Add support for detecting if an expression had explicit parentheses
2024-09-30 11:58:51 +02:00
Fabien Potencier d133ab7e70 Add support for detecting if an expression had explicit parentheses 2024-09-30 11:55:38 +02:00
Fabien Potencier 4e08e3ef5f Fix tests 2024-09-30 08:41:48 +02:00
Fabien Potencier 191a138768 minor #4252 Unify error messages when a filter expects a mapping/sequence (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Unify error messages when a filter expects a mapping/sequence

Besides unifying the error messages, I've also removed the mention of `\Traversable` as this does not help and is an implementation detail (mapping and sequence are Twig terms, Traversable is not).

Or maybe we should introduce the notion of a "iterable"?

Commits
-------

c599125a39 Unify error messages when a filter expects a mapping/sequence
2024-09-29 18:30:09 +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 3523d34b50 Add missing is_iterable() checks 2024-09-29 18:23:14 +02:00
Fabien Potencier 0f47aa7d1f Fix tests 2024-09-29 18:22:59 +02:00
Fabien Potencier bfa44742da Add quotes on filters/functions in CoreExtension 2024-09-29 18:18:48 +02:00
Fabien Potencier 5298b5598e minor #4361 Use get_debug_type() everywhere (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Use get_debug_type() everywhere

Commits
-------

0da899d911 Use get_debug_type() everywhere
2024-09-29 18:10:06 +02:00
Fabien Potencier 0da899d911 Use get_debug_type() everywhere 2024-09-29 18:08:29 +02:00
Fabien Potencier e83c3c888b Add an additional example in the docs 2024-09-29 17:54:02 +02:00
Fabien Potencier 85cbd0d7f0 minor #4360 Add more information about the filter and the negative operators (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Add more information about the filter and the negative operators

Refs #974
Refs #1368
Refs #1634
Refs #2470

Commits
-------

fae6cfc32f Add more information about the filter and the negative operators
2024-09-29 17:47:03 +02:00
Fabien Potencier c531c740f3 bug #4359 Fix ignored parenthesis in expressions (fabpot)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Fix ignored parenthesis in expressions

Closes #3705
Closes #2891

Commits
-------

1488238e32 Fix ignored parenthesis in expressions
2024-09-28 23:47:06 +02:00
Fabien Potencier 1488238e32 Fix ignored parenthesis in expressions 2024-09-28 23:47:01 +02:00
Fabien Potencier 1d31ac4b77 Tweak previous merge 2024-09-28 09:57:08 +02:00
Fabien Potencier 8efdab4780 minor #3983 Added details in the doc of filters and functions of IntlExtension (FlorianChenot)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Added details in the doc of filters and functions of IntlExtension

Commits
-------

8716392603 Added details in the doc of filters and functions of IntlExtension
2024-09-28 09:46:54 +02:00
unknown 8716392603 Added details in the doc of filters and functions of IntlExtension 2024-09-28 09:46:50 +02:00
Fabien Potencier fae6cfc32f Add more information about the filter and the negative operators 2024-09-28 09:22:47 +02:00
Fabien Potencier 10bbdd5007 minor #4358 Update plural.rst: Fixing filter name (ThomasLandauer)
This PR was merged into the 3.x branch.

Discussion
----------

Update plural.rst: Fixing filter name

Info is taken from https://github.com/twigphp/Twig/pull/4357#issuecomment-2378435199

Besides, I changed to a more illustrative example word. One of the rare cases where ChatGPT was indeed useful... ;-)

Commits
-------

bd33033fd1 Update plural.rst: Fixing filter name
2024-09-27 10:48:07 +02:00
Thomas Landauer bd33033fd1 Update plural.rst: Fixing filter name
Info is taken from https://github.com/twigphp/Twig/pull/4357#issuecomment-2378435199

Besides, I changed to a more illustrative example word. One of the rare cases where ChatGPT was indeed useful... ;-)
2024-09-27 10:46:21 +02:00
Fabien Potencier f6972c42cf feature #4352 Implement the enum function (nicolas-grekas)
This PR was merged into the 3.x branch.

Discussion
----------

Implement the `enum` function

Fixes #3681
Requires #4353

Commits
-------

cff6f1ca80 Implement the `enum` function
2024-09-27 08:26:28 +02:00
Nicolas Grekas cff6f1ca80 Implement the enum function 2024-09-27 08:23:21 +02:00
Fabien Potencier faf8471d47 feature #4335 Deprecate instantiating Node directly, introduce EmptyNode and Nodes (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Deprecate instantiating Node directly, introduce EmptyNode and Nodes

Based on some comments from `@stof`:

See https://github.com/twigphp/Twig/pull/4292#discussion_r1751651242
See https://github.com/twigphp/Twig/pull/4333#discussion_r1773531733

First interesting usage here: 65ee72a71f60c3680c2aceef7b9932cee7f84e89

Commits
-------

8b278986b8 Deprecate using Node directly, introduce EmptyNode and Nodes
2024-09-27 07:43:50 +02:00
Fabien Potencier 8b278986b8 Deprecate using Node directly, introduce EmptyNode and Nodes 2024-09-27 07:42:41 +02:00
Fabien Potencier a1daf1e551 minor #4357 Update plural.rst: Fixing(?) broken links (ThomasLandauer)
This PR was merged into the 3.x branch.

Discussion
----------

Update plural.rst: Fixing(?) broken links

More important question: Is the filter's name `plural` or `pluralize`??

Commits
-------

cc3a2b7bac Update plural.rst: Fixing(?) broken links
2024-09-27 07:34:31 +02:00
Fabien Potencier 1e4ceff2a8 feature #4349 Add support for inline comments (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Add support for inline comments

Closes #4001

Commits
-------

d9d8bb0df3 Add support for inline comments
2024-09-27 07:32:40 +02:00
Fabien Potencier d9d8bb0df3 Add support for inline comments 2024-09-27 07:32:09 +02:00
Thomas Landauer cc3a2b7bac Update plural.rst: Fixing(?) broken links
More important question: Is the filter's name `plural` or `pluralize`??
2024-09-27 01:23:50 +02:00
Fabien Potencier a23cd9feeb Fix CS 2024-09-26 21:22:23 +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
Fabien Potencier 63a04d8ab7 minor #4350 Replace strtr() by strtolower() (nicolas-grekas)
This PR was merged into the 3.x branch.

Discussion
----------

Replace strtr() by strtolower()

The performance of `strtolower()` has been fixed in PHP 8.

Commits
-------

04471ab8cd Replace strtr() by strtolower()
2024-09-26 20:34:22 +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
Nicolas Grekas 04471ab8cd Replace strtr() by strtolower() 2024-09-26 17:48:39 +02:00
Fabien Potencier d008fa408e minor #4345 Add fixture filename as key (ruudk)
This PR was merged into the 3.x branch.

Discussion
----------

Add fixture filename as key

This way, it's easier to see which test failed and what the file was.

In PHPStorm this is visualized very nice.
![Screenshot 2024-09-26 at 14 19 49@2x](https://github.com/user-attachments/assets/1fe87364-c014-4cff-9b90-b9db0368efc8)

Commits
-------

633d70103d Add fixture filename as key
2024-09-26 15:11:48 +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
Fabien Potencier d1c754ecdf minor #4344 Improve escape deprecation message (ruudk)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Improve escape deprecation message

This was introduced in https://github.com/twigphp/Twig/pull/4176

According to #4343 the message can be improved.

I made a few changes to the test to make it easier to work with. Best to review this PR **commit by commit**.

/cc `@stof`

Commits
-------

7256713c86 Improve escape deprecation message
2024-09-26 15:09:44 +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