Commit Graph

1496 Commits

Author SHA1 Message Date
Fabien Potencier f2f03d7629 Fix typos in the docs 2025-01-02 21:31:30 +01:00
Baptiste 3889bc7b18 Fix typo in enum twig doc functions 2025-01-02 09:42:18 +01:00
Fabien Potencier 4b87103468 Replace Twigfiddle by the new Twig playground 2024-12-26 14:58:29 +01:00
Fabien Potencier 91e609663e minor #4510 [Doc] Update the docs about attribute() function (javiereguiluz)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

[Doc] Update the docs about attribute() function

I Was fixing `filter` -> `function` error, but I realized that we could expand the docs of `attribute()` a bit, even if it's deprecated 🙏

Commits
-------

84daad9a27 [Doc] Update the docs about attribute() function
2024-12-19 08:40:12 +01:00
Javier Eguiluz 84daad9a27 [Doc] Update the docs about attribute() function 2024-12-19 08:39:55 +01:00
Fabien Potencier f99eab8541 feature #4504 Add a way to stream template rendering (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Add a way to stream template rendering

Even if we're using `yield` internally, there is no easy way to stream template rendering. This new method can be used like this to HTTP stream a template with Symfony:

```php
use Symfony\Component\HttpFoundation\StreamedResponse;
use Twig\Environment;

$twig = new Environment(/* ... */);

$response = new StreamedResponse($twig->load('index')->stream([]));
$response->send();
```

Commits
-------

1915ee2812 Add a way to stream template rendering
2024-12-18 19:14:01 +01:00
Fabien Potencier d78cb00f89 Fix doc 2024-12-18 12:19:13 +01:00
Pepperoni1337 03792f643f Use .html.twig file extension in documentation instead of .html 2024-12-18 11:01:27 +01:00
Fabien Potencier 1915ee2812 Add a way to stream template rendering 2024-12-18 07:29:32 +01:00
seb-jean 99ea35e1e8 Change = to : for named arguments 2024-12-14 19:49:00 +01:00
Christian Flothmann f90105d0ac fix version numbers for deprecations 2024-12-02 10:21:03 +01:00
Fabien Potencier d894f92d12 feature #4487 Support underscores in number literals (smnandre)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Support underscores in number literals

```twig
{{ 1000 == 1_000 ? 'yes' : 'no' }}
# now: syntax error
# this PR: "yes"
```

> As of PHP 7.4.0, integer literals may contain underscores (_) between digits, for better readability of literals. These underscores are removed by PHP's scanner.

https://www.php.net/manual/en/language.types.integer.php

This PR replicates that behaviour, using the regexp to match the literals and then remove the "_".

I'm targeting **Twig4** but maybe 3.x would be ok?

I cannot think of a real case that
- does not trigger an error currently
- would work differently after this PR

Commits
-------

da4d96692a Support underscores in number literals
2024-12-02 09:47:00 +01:00
Simon André da4d96692a Support underscores in number literals 2024-12-02 09:46:54 +01:00
Vincent Langlet 07a4ed17d2 Update coding standards 2024-11-30 10:52:04 +01:00
Fabien Potencier c96aefdf04 Add more coding standard rules 2024-11-29 21:26:34 +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 c402debcb8 Fix EscapeNodeVisitor::isSafeFor() 2024-11-25 17:27:56 +01:00
Fabien Potencier e7e72ff090 Deprecate not passing a Source to TokenStream 2024-11-24 19:41:42 +01:00
Fabien Potencier a4a11ca90f minor #4447 Clarify documentation for escape filter (dmjohnsson23)
This PR was merged into the 3.x branch.

Discussion
----------

Clarify documentation for escape filter

It was somewhat unclear from the documentation what the intended purpose of the 'js' escape strategy is. I wasn't certain *where* exactly in JavaScript such strings were intended to be output. Someone (by that I mean me--though maybe I'm just an idiot...) might inadvertently think the filter was meant to be used somewhere in actual JavaScript code, rather than simply in strings.

Commits
-------

728b361e9d Clarify documentation for escape filter
2024-11-22 11:54:36 +01:00
Ruud Kamphuis 7556fe1c6f Simplify enum usage in docs 2024-11-21 09:11:11 +01:00
Nicolas Grekas 37d99c2a59 Add BC break note in CHANGELOG for 3.15 2024-11-19 14:24:04 +01:00
Fabien Potencier c5d0d593d2 minor #4446 Improve YieldReady support docs (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Improve YieldReady support docs

Refs https://github.com/twigphp/Twig/discussions/4428

Commits
-------

9d9c9d81e9 Improve YieldReady support docs
2024-11-12 08:12:30 +01:00
dmjohnsson23 728b361e9d Clarify documentation for escape filter
It was somewhat unclear from the documentation what the intended purpose of the 'js' escape strategy is.
2024-11-11 15:41:24 -07:00
Fabien Potencier 9d9c9d81e9 Improve YieldReady support docs 2024-11-11 09:38:36 +01:00
Jacob Dreesen 151b05b2bb Fix some typos in html_cva docs 2024-11-08 19:22:16 +01:00
Nicolas Grekas d72ae2447e Merge branch '3.14.x' into 3.x
* 3.14.x:
  Improve detection of recursion
  Fix recursion when arrays contain self-references in sandboxed mode
  Fix code
  Prepare the 3.11.2 release
  Update CHANGELOG
  Sandbox ArrayAccess and do sandbox checks before isset() checks
  Fix sandbox handling for __toString()
  Prepare the 3.14.1 release
  Update CHANGELOG
  Sandbox ArrayAccess and do sandbox checks before isset() checks
  Fix sandbox handling for __toString()
  Prepare the 3.11.1 release
  Fix a security issue when an included sandboxed template has been loaded before without the sandbox context
2024-11-07 11:17:57 +01:00
Nicolas Grekas 83a21d31e5 Merge branch '3.11.x' into 3.14.x
* 3.11.x:
  Improve detection of recursion
  Fix recursion when arrays contain self-references in sandboxed mode
  Fix code
  Prepare the 3.11.2 release
  Update CHANGELOG
  Sandbox ArrayAccess and do sandbox checks before isset() checks
  Fix sandbox handling for __toString()
  Prepare the 3.11.1 release
  Fix a security issue when an included sandboxed template has been loaded before without the sandbox context
2024-11-07 11:11:36 +01:00
Nicolas Grekas d3fc074171 Improve detection of recursion 2024-11-07 10:15:07 +01:00
Nicolas Grekas b957e5a44c Sandbox ArrayAccess and do sandbox checks before isset() checks 2024-11-06 21:41:25 +01:00
Nicolas Grekas ec39a9dccc Sandbox ArrayAccess and do sandbox checks before isset() checks 2024-11-06 19:48:59 +01:00
Nicolas Grekas 831c148e78 Sandbox ArrayAccess and do sandbox checks before isset() checks 2024-11-06 19:16:07 +01:00
Fabien Potencier 98e7f7141a minor #4432 Fix mistake in docs for keys filter (ruudk)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Fix mistake in docs for `keys` filter

Commits
-------

deb37c30c4 Fix mistake in docs for `keys` filter
2024-11-04 08:50:22 +01:00
Ruud Kamphuis deb37c30c4 Fix mistake in docs for keys filter 2024-11-04 08:50:19 +01:00
Ruud Kamphuis b4ed19b5e1 Add find to Filters docs
https://twig.symfony.com/doc/3.x/filters/index.html
https://twig.symfony.com/doc/3.x/filters/find.html
2024-10-31 15:57:00 +01:00
Jeroen Versteeg 4a0568521a Add link to TwigQI in docs "You might also be interested in" section 2024-10-25 11:36:55 +02:00
Fabien Potencier 2735f81a22 feature #4398 Rename Node classes related to variables (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Rename Node classes related to variables

Whenever I work on Twig internals, it's always complicated to reason about variable names, probably because the class names are confusing. This PR is an attempt to find "better" and more explicit names.

This PR does the following renaming:

 * `NameExpression` to `Variable\ContextVariable`
    Represents the value of a context variable like `$context[VAR] ?? null`

 * `AssignNameExpression` to `Variable\AssignContextVariable`
    Represents a context variable assignment like in `$context[VAR] = `

 * `TempNameExpression` to `Variable\LocalVariable`
    Represents a "private" local variable like `$_l111`

Commits
-------

fc15e7ccbc Rename Node classes related to variables
2024-10-23 22:29:28 +02:00
Fabien Potencier f43eba5b10 minor #4403 Documentation for types tag uses Twig types in examples instead of PHP (drjayvee)
This PR was squashed before being merged into the 3.x branch.

Discussion
----------

Documentation for types tag uses Twig types in examples instead of PHP

Specifically, "bool" => "boolean" and "int" => "number".

This aligns the `types` documentation with templates.rst. See #4362

Thanks, `@alexander`-schranz!

Commits
-------

f3e0a00cf0 Documentation for types tag uses Twig types in examples instead of PHP
2024-10-23 16:54:05 +02:00
Jeroen Versteeg f3e0a00cf0 Documentation for types tag uses Twig types in examples instead of PHP 2024-10-23 16:54:04 +02:00
Fabien Potencier fc15e7ccbc Rename Node classes related to variables 2024-10-23 12:36:57 +02:00
Fabien Potencier f1481be00f Remove MacroAutoImportNodeVisitor 2024-10-21 12:09:30 +02:00
Fabien Potencier 1105964873 Rework macros handling 2024-10-20 21:53:20 +02:00
Fabien Potencier 223d36bbae Add support for named arguments on macro calls and dot operator arguments 2024-10-11 11:31:40 +02:00
Antoine M 309d3f50cb chore: fix version added
comming from slack message of @javiereguiluz 
nice addition!
2024-10-08 22:19:25 +02:00
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 5ac03a440c minor #4376 Move sandbox docs to its own chapter in the docs (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Move sandbox docs to its own chapter in the docs

I've also added more information about potential security issues when exposing something that takes a callable as an argument.

Commits
-------

6688a8df16 Move sandbox docs to its own chapter in the docs
2024-10-04 21:01:30 +02:00
Fabien Potencier 6688a8df16 Move sandbox docs to its own chapter in the docs 2024-10-04 21:00:19 +02:00
Fabien Potencier 1876635d23 feature #4377 Deprecate passing a string or an array to Twig callable arguments accepting arrow functions (pass a Closure) (fabpot)
This PR was merged into the 3.x branch.

Discussion
----------

Deprecate passing a string or an array to Twig callable arguments accepting arrow functions (pass a Closure)

Instead of restricting callable arguments only in sandbox mode, let's deprecate using functions/arrays as callables.

Commits
-------

5e9448310d Deprecate passing a string or an array to Twig callable arguments accepting arrow functions (pass a Closure)
2024-10-04 20:59:44 +02:00
Fabien Potencier 5e9448310d Deprecate passing a string or an array to Twig callable arguments accepting arrow functions (pass a Closure) 2024-10-04 18:51:37 +02:00