Fabien Potencier
0b4269e6c1
Bump version
2024-04-17 05:00:49 -04:00
Fabien Potencier
664647f46b
Prepare the 3.9.1 release
2024-04-17 05:00:00 -04:00
Fabien Potencier
64cebe0e0b
Fix CaptureNode for some use cases
2024-04-17 04:57:55 -04:00
Fabien Potencier
2105d65957
Bump version
2024-04-16 12:05:55 -04:00
Fabien Potencier
47857eebb1
Prepare the 3.9.0 release
2024-04-16 12:04:21 -04:00
Fabien Potencier
fdfc5dddb6
Fix compat with PHP 8.4
2024-04-16 11:43:55 -04:00
Fabien Potencier
dbe9456f77
Fix incompatibility with old PHP versions
2024-04-14 11:16:06 +02:00
Fabien Potencier
a62581ae5e
Fix typo
2024-04-14 11:15:26 +02:00
Fabien Potencier
61031d6cfa
Deprecate passing a Template instance in Environment::resolveTemplate() and Template::loadTemplate()
2024-04-14 11:15:25 +02:00
Fabien Potencier
41d702d6be
Add a deprecation notice when using AbstractNodeVisitor (deprecated since 2.9)
2024-04-14 10:44:50 +02:00
Fabien Potencier
30b5658f89
Fix CS
2024-04-14 10:22:11 +02:00
Simon André
2d262bc35f
Fix param name in docblock (minor)
2024-04-03 13:36:36 +02:00
Nicolas Grekas
b46e93c725
Minor fixes
2024-02-15 12:09:06 +01:00
Nicolas Grekas
e70777405d
Add #[YieldReady] to allow extensions to tell when they're ready for yielding
2024-02-15 10:27:26 +01:00
Fabien Potencier
7f5958c5e3
minor #3996 Remove redundant "instanceof \Countable" check (minor) (smnandre)
...
This PR was merged into the 3.x branch.
Discussion
----------
Remove redundant "instanceof \Countable" check (minor)
In [CoreExtension::lengthFilter](https://github.com/twigphp/Twig/compare/3.x...smnandre:fix/remove-check-countable?expand=1#diff-29e85e483c6ec4a9c2fd144820b6722c86df60d54175b355d85e806253313c1a ), the check L1183 is redundant as "`$thing instanceof \Countable`" is already checked L1175.
```diff
if ($thing instanceof \Countable || \is_array($thing) || $thing instanceof \SimpleXMLElement) {
return \count($thing);
}
if ($thing instanceof \Traversable) {
return iterator_count($thing);
}
- if (method_exists($thing, '__toString') && !$thing instanceof \Countable) {
+ if (method_exists($thing, '__toString')) {
return mb_strlen((string) $thing, $env->getCharset());
}
```
Commits
-------
2836af3d Remove redundant "$thing instanceof \Countable" check
2024-02-10 10:00:39 +01:00
Fabien Potencier
f7f11ea410
Fix CS
2024-02-10 09:52:03 +01:00
Simon André
2836af3d3f
Remove redundant "$thing instanceof \Countable" check
...
The check L1183 is redundant as "$thing instanceof \Countable" is already checked L1175.
```php
if ($thing instanceof \Countable || \is_array($thing) || $thing instanceof \SimpleXMLElement) {
return \count($thing);
}
if ($thing instanceof \Traversable) {
return iterator_count($thing);
}
if (method_exists($thing, '__toString') && !$thing instanceof \Countable) {
return mb_strlen((string) $thing, $env->getCharset());
}
```
2024-02-10 02:32:40 +01:00
Fabien Potencier
7e1945a618
minor #3991 Fix some errors reported by phpstan (fabpot)
...
This PR was merged into the 3.x branch.
Discussion
----------
Fix some errors reported by phpstan
Commits
-------
2b2ac80d Fxi some errors reported by phpstan
2024-02-05 18:59:35 +01:00
Fabien Potencier
2b2ac80d34
Fxi some errors reported by phpstan
2024-02-05 17:48:36 +01:00
Fabien Potencier
a93723eae2
Fix bug
2024-01-25 13:09:58 +01:00
Fabien Potencier
0d3a283907
Tweak code
2024-01-25 13:09:58 +01:00
Fabien Potencier
14d3803647
Add a deprecation when a Node uses echo/print
2024-01-25 13:09:58 +01:00
Fabien Potencier
1591aa5c7d
Optimize code
2024-01-25 13:09:58 +01:00
Fabien Potencier
1469e6a6bc
Add support for templates that do not have output Nodes
2024-01-25 13:09:58 +01:00
Fabien Potencier
72922a3612
-
2024-01-25 13:09:58 +01:00
Fabien Potencier
a9c7307b5c
Tweak code
2024-01-25 13:09:58 +01:00
Fabien Potencier
15879406c8
Remove the new yield nodes
2024-01-25 13:09:58 +01:00
Fabien Potencier
3b6cbf98d8
Remove usage of ob_* functions in favor of yielding
2024-01-25 13:09:52 +01:00
Fabien Potencier
4c179c8a64
bug #3961 Throws proper Twig exception when using cycle on an empty array (fabpot)
...
This PR was merged into the 3.x branch.
Discussion
----------
Throws proper Twig exception when using cycle on an empty array
Closes #3925
Commits
-------
d21666f7 Throws proper Twig exception when using cycle on an empty array
2024-01-12 12:20:12 +01:00
Fabien Potencier
9ef031efdc
Remove an obsolete comment
2024-01-12 08:20:25 +01:00
Fabien Potencier
d21666f728
Throws proper Twig exception when using cycle on an empty array
2024-01-11 21:47:04 +01:00
Fabien Potencier
433189bb5a
feature #3959 Optimize TextNodes (fabpot)
...
This PR was merged into the 3.x branch.
Discussion
----------
Optimize TextNodes
Not a great perf optimization, but it makes the node graph simpler which helps when we need to debug templates.
Commits
-------
c44bd1ff Optimize TextNodes
2024-01-11 14:01:35 +01:00
Fabien Potencier
c44bd1ff62
Optimize TextNodes
2024-01-10 20:22:00 +01:00
Fabien Potencier
af8ec178b6
Remove list() usage in code
2024-01-05 12:46:24 +01:00
Fabien Potencier
9c0897fa2c
Remove usage of list() in favor of []
2024-01-05 09:48:24 +01:00
Christian Flothmann
665dce899f
rework the CaptureNode implementation
2024-01-01 15:43:59 +01:00
Fabien Potencier
6ebbc30593
Abstract node capture in its own Node
2023-12-30 10:14:36 +01:00
Malte Wunsch
3963851a41
Improve error message
...
It is not obvious that you cannot use the Twig function `constant` to get the special `::class` constants of classes like so: `{{ constant('Twig\\Extension\\CoreExtension::class') }}`, due to the underlying PHP function `\constant()`.
The previous error message in this case: 'Constant "Twig\Extension\CoreExtension::class" is undefined.' was not very helpful.
2023-12-22 08:51:25 +01:00
Fabien Potencier
4c621adb49
Bump version
2023-12-22 08:35:50 +01:00
Fabien Potencier
0b9e30e3d2
Simplify code
2023-12-20 20:43:49 +01:00
Fabien Potencier
bc22e38ce6
Fix bad merge
2023-12-20 20:34:40 +01:00
Fabien Potencier
204cd6f412
Merge branch '2.x' into 3.x
...
* 2.x:
Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source
2023-12-19 08:19:15 +01:00
Fabien Potencier
a4974b29a0
feature #3893 Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source (YSaxon)
...
This PR was squashed before being merged into the 2.x branch.
Discussion
----------
Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source
This is needed to patch some downstream vulnerabilities which I won't describe here.
I wrote `@fabpot` an email about this with more details a few weeks ago.
Generally the Sandbox can be enabled for a given template in either of two ways:
* Globally
* Including the template from another template in which we use the sandbox tag or parameter
This pull request adds a third way
* Using a SourcePolicy to selectively sandbox templates based on their Source object
Commits
-------
a18da161 Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source
2023-12-19 08:18:38 +01:00
Yaakov Saxon
a18da1614a
Add SourcePolicyInterface to selectively enable the Sandbox based on a template's Source
2023-12-19 08:18:35 +01:00
Fabien Potencier
aa7c454e2d
Fix CS
2023-12-10 20:34:32 +01:00
Fabien Potencier
54d34b969b
Move functions for CoreExtension
2023-12-10 20:13:10 +01:00
Fabien Potencier
72071e8ece
Move functions for EscaperExtension
2023-12-10 11:49:57 +01:00
Fabien Potencier
196e91dd72
Move functions for StringLoaderExtension
2023-12-10 11:38:36 +01:00
Fabien Potencier
d4d016034c
Move functions for DebugExtension
2023-12-10 11:35:00 +01:00
Fabien Potencier
aeeec9a5e9
Bump version
2023-11-21 19:55:42 +01:00