This PR was merged into the 3.x branch.
Discussion
----------
Remove internal from ExpressionParser
In the advanced doc, it's explained how to write TokenParser:
https://github.com/twigphp/Twig/blob/3.x/doc/advanced.rst#defining-a-token-parser
Such an implementation rely on method like
ExpressionParser::parseExpression or Expression::parseMultitargetExpression,
Currently the ExpressionParser is marked as internal, implying all the method are also internal.
It would be great to promise BC about those methods since they are require/usefull for custom TokenParser.
I dunno if the ``@internal`` tag is still needed for some methods of the ExpressionParser (like the constructor ?).
This would also
Closes https://github.com/twigphp/Twig/issues/3443
Commits
-------
de0f947e Remove internal from ExpressionParser
This PR was submitted for the 3.x branch but it was merged into the 2.x branch instead.
Discussion
----------
Update michelf/php-markdown require-dev to allow v2
This new release should work fine: https://github.com/michelf/php-markdown#version-history
Commits
-------
1a8ac1d8 Update michelf/php-markdown require-dev to allow v2
This PR was submitted for the 3.x branch but it was merged into the 2.x branch instead.
Discussion
----------
Adding installation instructions for Symfony
Wording is taken from https://twig.symfony.com/doc/3.x/filters/format_datetime.html
Commits
-------
c034c1d2 Adding installation instructions for Symfony
This PR was merged into the 2.x branch.
Discussion
----------
Use the PHP doc builder instead of Sphinx in CI
Commits
-------
fcf65bd9 Use the PHP doc builder instead of Sphinx in CI
This PR was merged into the 2.x branch.
Discussion
----------
Make doc clearer for the replace filter
Closes#3733
Commits
-------
c25a1efc Make doc clearer
This PR was merged into the 2.x branch.
Discussion
----------
Allow inherited magic method to still run with calling class
This is #3719 ported to 2.x and improved a bit.
I also reported https://github.com/php/php-src/issues/8932 because the underlying behavior of PHP is broken to me.
If a static method cannot be resolved to the calling class, but the calling class has, or inherits, a `__callStatic` handler, this allows the `__callStatic` handler to be used with the calling class, and not the inherited class as would occur with reflection. This allows systems such as Laravel facades to still work.
Fixes https://github.com/twigphp/Twig/issues/3716
Commits
-------
d1457a40 Allow inherited magic method to still run with calling class
If a static method cannot be resolved to the calling class, but the calling class has, or inherits, a `__callStatic` handler, this allows the `__callStatic` handler to be used with the calling class, and not the inherited class as would occur with reflection. This allows systems such as Laravel facades to still work.
Fixes https://github.com/twigphp/Twig/issues/3716
This PR was merged into the 2.x branch.
Discussion
----------
Bugfix typo in twig/intl-exta
Bugfix typo in text attribute name see https://github.com/twigphp/Twig/issues/3710
Commits
-------
fd2f6d42 Bugfix typo in twig/intl-exta
This PR was submitted for the 3.x branch but it was squashed and merged into the 2.x branch instead.
Discussion
----------
Fixes `CallExpression::reflectCallable()` throwing `TypeError`
See #3708
Commits
-------
e333ccc9 Fixes `CallExpression::reflectCallable()` throwing `TypeError`