Commit Graph

5387 Commits

Author SHA1 Message Date
Fabien Potencier 3deeb0b2c0 Add 8.1 in tests 2022-01-02 16:26:34 +01:00
Fabien Potencier ce97157b43 Bump license year 2022-01-02 11:02:19 +01:00
Fabien Potencier 8b989ebc8a bug #3608 Allow symfony/translation-contracts:^3 (michaljusiega)
This PR was merged into the 2.x branch.

Discussion
----------

Allow symfony/translation-contracts:^3

However,
I am just wondering why this dependency is required since it's not used anywhere in `twig/string-extra`? Or I am wrong ?

Closing https://github.com/twigphp/Twig/issues/3607

Commits
-------

0c1e4edc allow translation-contracts:^3
2021-12-26 18:56:12 +01:00
Fabien Potencier fa678e9244 minor #3611 Typo fix : "flexiblity" ➤ "flexibility" (Levure)
This PR was merged into the 2.x branch.

Discussion
----------

Typo fix : "flexiblity" ➤ "flexibility"

Commits
-------

ca1e79fc Typo fix : "flexiblity" ➤ "flexibility"
2021-12-26 18:49:51 +01:00
Bruno Baguette ca1e79fcec Typo fix : "flexiblity" ➤ "flexibility" 2021-12-26 18:41:09 +01:00
Michał Jusięga 0c1e4edc8b allow translation-contracts:^3 2021-12-22 17:41:26 +01:00
Fabien Potencier 3284859a1b Remove unneeded coments 2021-12-17 08:44:00 -08:00
Fabien Potencier 4d46ed3ac3 minor #3596 Optimize Environment::resolveTemplate() to be much faster when template overrides do not exist (mahagr)
This PR was squashed before being merged into the 2.x branch.

Discussion
----------

Optimize Environment::resolveTemplate() to be much faster when template overrides do not exist

Fixes partially #3595.

You can test this by adding an object into the context which implements `__debugInfo()` with a counter in it. Make a template with

```twig
{% include ['missing_template1', 'missing_template2', 'missing_template3', 'missing_template4', 'missing_template5'] %}
```

And check how many times an exception was thrown by reading the counter. The issue gets exponentially worse if you have nested templates with overrides in each of them.

Commits
-------

695423e1 Optimize Environment::resolveTemplate() to be much faster when template overrides do not exist
2021-12-17 08:43:16 -08:00
Matias Griese 695423e14e Optimize Environment::resolveTemplate() to be much faster when template overrides do not exist 2021-12-17 08:43:05 -08:00
Fabien Potencier 9f3798bafd minor #3588 Use faster hash algorithm (xxh128) on PHP 8.1+ (GromNaN)
This PR was merged into the 2.x branch.

Discussion
----------

Use faster hash algorithm (xxh128) on PHP 8.1+

Twig uses the `hash` function at runtime to convert template paths class names, each time a template is loaded. In a large project with a high granularity of templates (hundreds of `include` per page), this can become the most time consuming function as reported by Blackfire:
<img src="https://user-images.githubusercontent.com/400034/140626949-c4876b7d-c91c-4e07-b2f4-8ebbcaa72f61.png" width="220">

To optimise this use-case, [PHP 8.1 supports the xxHash hash algorithms](https://php.watch/versions/8.1/xxHash). `xxh128` is 60x faster that `sha256` according to the [benchmarks](https://php.watch/articles/php-hash-benchmark), and guarantee a very [low risk of collision](http://cyan4973.github.io/xxHash/).

I'm not able to test with PHP 8.1 for now. Before going further I would like to validate performance impact on a large list of file names.

Commits
-------

4fcc6b1c Use faster hash algorithm (xxh128) on PHP 8.1
2021-12-16 11:53:56 -08:00
Jérôme TAMARELLE 4fcc6b1c47 Use faster hash algorithm (xxh128) on PHP 8.1 2021-12-15 06:29:16 +01:00
Fabien Potencier 2117e4b1bc minor #3601 Hashing is not necessary to generate unique variable names during compilation (GromNaN)
This PR was squashed before being merged into the 2.x branch.

Discussion
----------

Hashing is not necessary to generate unique variable names during compilation

Trying to optimize calls to `hash` function (#3588), I found that some calls are made during compilation that are not necessary at all.

According to the last commits on this functions (57ff88255e & 6ab5fe9b8f), the internal variable names must be unique and deterministic. Using a simple sequence is enough.

This avoid CPU cycles during compilation. Which should not have any impact on production; but still interesting for dev&test.

Commits
-------

ba2b4e6d Hashing is not necessary to generate unique variable names during compilation
2021-12-14 15:27:12 -08:00
Jérôme Tamarelle ba2b4e6dfe Hashing is not necessary to generate unique variable names during compilation 2021-12-14 15:26:59 -08:00
Fabien Potencier a41a6cce62 minor #3593 Fix a typo in api.rst (fishmandev)
This PR was merged into the 2.x branch.

Discussion
----------

Fix a typo in api.rst

Fix a typo

Commits
-------

68d59ab8 Fix a typo in api.rst
2021-11-29 09:43:57 +01:00
Dmitriy Fishman 68d59ab8c4 Fix a typo in api.rst 2021-11-29 07:20:05 +02:00
Fabien Potencier e2a0b873cc minor #3592 Fix a typo advanced.rst (fishmandev)
This PR was submitted for the 3.x branch but it was merged into the 2.x branch instead.

Discussion
----------

Fix a typo advanced.rst

Fix a typo

Commits
-------

cd24fb57 Fix a typo advanced.rst
2021-11-28 13:30:11 +01:00
Dmitriy Fishman cd24fb57bc Fix a typo advanced.rst 2021-11-28 13:30:08 +01:00
Fabien Potencier 527c9e05c9 Bump version 2021-11-25 14:44:38 +01:00
Fabien Potencier 06b450a232 Prepare the 2.14.8 release v2.14.8 2021-11-25 14:38:06 +01:00
Fabien Potencier b4ac5878c2 Update CHANGELOG 2021-11-25 14:37:52 +01:00
Fabien Potencier c9022c06ed Remove changelogs from 1.x 2021-11-25 14:36:14 +01:00
Fabien Potencier 91ba2e5361 Merge branch '1.x' into 2.x
* 1.x:
  Prepare the last release for the 1.x series
2021-11-25 14:35:54 +01:00
Fabien Potencier ae39480f01 Prepare the last release for the 1.x series v1.44.6 2021-11-25 14:31:46 +01:00
Fabien Potencier a95486f2c6 minor #3587 Upgrade to version 4.4 lts at least (noniagriconomie)
This PR was merged into the 2.x branch.

Discussion
----------

Upgrade to version 4.4 lts at least

Related to https://github.com/twigphp/twig-extra-bundle/pull/4
Friendly ping `@fabpot`
For the `twig/twig` upgrade, it is related to https://packagist.org/packages/twig/twig/advisories?version=2690125

Commits
-------

315e16f5 Upgrade to version 4.4 lts at least
2021-11-13 17:19:35 +01:00
noniagriconomie 315e16f5df Upgrade to version 4.4 lts at least 2021-11-08 13:29:10 +01:00
Fabien Potencier a34f98ec59 bug #3586 [TwigExtraBundle] Add the return type information in getConfigTreeBuilder() (javiereguiluz)
This PR was merged into the 2.x branch.

Discussion
----------

[TwigExtraBundle] Add the return type information in getConfigTreeBuilder()

Moved from https://github.com/twigphp/twig-extra-bundle/pull/5

-----

This will fix the following deprecation:

```
  1x: Method "Symfony\Component\Config\Definition\ConfigurationInterface::getConfigTreeBuilder()" might add "TreeBuilder" as a native return type declaration in the future. Do the same in implementation "Twig\Extra\TwigExtraBundle\DependencyInjection\Configuration" now to avoid errors or add an explicit `@return` annotation to suppress this message.
    1x in AddUserCommandTest::testCreateUserNonInteractive from App\Tests\Command
```

Commits
-------

26654f65 [TwigExtraBundle] Add the return type information in getConfigTreeBuilder()
2021-11-05 17:53:11 +01:00
Javier Eguiluz 26654f653f [TwigExtraBundle] Add the return type information in getConfigTreeBuilder() 2021-11-05 16:54:01 +01:00
Fabien Potencier f75db68112 Merge branch '1.x' into 2.x
* 1.x:
  Fix emphasis on compiler to bold styling
2021-11-04 18:53:35 +01:00
Fabien Potencier 7e5ba95dc8 minor #3584 Fix emphasis on compiler to bold styling (jonnyeom)
This PR was submitted for the 2.x branch but it was merged into the 1.x branch instead.

Discussion
----------

Fix emphasis on compiler to bold styling

This is just so the Lexer, Parser, and Compiler has the same styling

Commits
-------

97ae3c8e Fix emphasis on compiler to bold styling
2021-11-04 18:52:44 +01:00
Jonny Eom 97ae3c8e97 Fix emphasis on compiler to bold styling 2021-11-04 18:52:41 +01:00
Fabien Potencier 8447e8dcd5 Remove license info in the README now that Github already displays it 2021-11-03 16:48:53 +01:00
Fabien Potencier 5e7ec8b53d Merge branch '1.x' into 2.x
* 1.x:
  Update .gitattributes to exclude non-dist files
2021-10-04 11:04:25 +02:00
Fabien Potencier 8bab813c86 minor #3570 Update .gitattributes to exclude non-dist files (kaznovac)
This PR was submitted for the 3.x branch but it was squashed and merged into the 1.x branch instead.

Discussion
----------

Update .gitattributes to exclude non-dist files

resolves #3503

some extra files can be excluded also:
- changelog
- license
- readme

should this be rebased to 1.x, 2.x?

Commits
-------

92766d0e Update .gitattributes to exclude non-dist files
2021-10-04 11:03:20 +02:00
Marko Kaznovac 92766d0e0c Update .gitattributes to exclude non-dist files 2021-10-04 11:03:13 +02:00
Fabien Potencier a7d0568c90 minor #3566 Update markdown-to-html converter missing message (tobias-93)
This PR was submitted for the 3.x branch but it was merged into the 2.x branch instead.

Discussion
----------

Update markdown-to-html converter missing message

The `league/html-to-markdown` library does not support Markdown to HTML conversion (anymore?). The `league/commonmark` library is suitable for that.

Commits
-------

46d21545 Update markdown-to-html converter missing message
2021-09-29 14:16:58 +02:00
Tobias Feijten 46d21545a6 Update markdown-to-html converter missing message
The `league/html-to-markdown` library does not support Markdown to HTML conversion (anymore?). The `league/commonmark` library is suitable for that.
2021-09-29 14:16:54 +02:00
Fabien Potencier ce5f3889d8 Merge branch '1.x' into 2.x
* 1.x:
  Fix CS
  Missing Environment and LoaderInterface
2021-09-22 17:08:32 +02:00
Fabien Potencier 3a18bb3a6b Fix CS 2021-09-22 17:05:23 +02:00
Fabien Potencier 212e49be47 minor #3563 Missing Environment and LoaderInterface (remicollet)
This PR was merged into the 1.x branch.

Discussion
----------

Missing Environment and LoaderInterface

Detected by CI...

Commits
-------

61df934a Missing Environment and LoaderInterface
2021-09-22 17:03:26 +02:00
Remi Collet 61df934a7e Missing Environment and LoaderInterface 2021-09-22 11:33:46 +02:00
Fabien Potencier 78ac30114f Bump version 2021-09-17 10:41:05 +02:00
Fabien Potencier 8e202327ee Prepare the 2.14.7 release v2.14.7 2021-09-17 10:39:54 +02:00
Fabien Potencier 3a89404984 Update CHANGELOG 2021-09-17 10:39:28 +02:00
Fabien Potencier b7aca14933 Merge branch '1.x' into 2.x
* 1.x:
  Bump version
  Prepare the 1.44.5 release
  Update CHANGELOG
2021-09-17 10:37:45 +02:00
Fabien Potencier 803efed8ea Bump version 2021-09-17 10:36:08 +02:00
Fabien Potencier dd4353357c Prepare the 1.44.5 release v1.44.5 2021-09-17 10:35:19 +02:00
Fabien Potencier 881744313e Update CHANGELOG 2021-09-17 10:34:38 +02:00
Fabien Potencier 50a41e48d0 minor #3554 Add explicit `@return type next to #[ReturnTypeWillChange]` (nicolas-grekas)
This PR was merged into the 2.x branch.

Discussion
----------

Add explicit ``@return`` type next to `#[ReturnTypeWillChange]`

Commits
-------

1d0bab9d Add explicit ``@return`` type next to `#[ReturnTypeWillChange]`
2021-08-11 09:52:09 +02:00
Nicolas Grekas 1d0bab9d63 Add explicit @return type next to #[ReturnTypeWillChange] 2021-08-10 18:49:26 +02:00
Fabien Potencier 5bfe5cce20 bug #3552 Twig2 PHP 8.1 beta compatibility (alexpott)
This PR was merged into the 2.x branch.

Discussion
----------

Twig2 PHP 8.1 beta compatibility

PHP 8.1 adds deprecation warnings for \IteratorAggregate \Countable and \ArrayAccess and Twig 2 (and 3) need to be updated for this.

Commits
-------

98c2233e Twig2 PHP 8.1 beta compatibility
2021-07-29 08:54:21 +02:00