patternengine-php-twig icon indicating copy to clipboard operation
patternengine-php-twig copied to clipboard

Token-like patterns no longer treated as templates

Open mogsie opened this issue 8 years ago • 1 comments

If you have templates that have typos in their includes, the use of the Twig_Loader_String causes the typo to be echoed out:

{% include "foo" %}

results in the string "foo" to be printed out unless "foo" is a twig template.

This change causes "foo" to no longer be printed out, but template generation to fail, because "foo" is not present.

This change also allows more of the twig features to be used, such as conditional includes and dynamic includes:

{% set foo = "something" %}

{% include [ foo, "fallback" ] %}

Before this change, the string "something" would always be printed. After the change, either the template "something" is included, otherwise, the template "fallback" is included, or else an error is raised:

Twig_Error_Loader: Unable to find one of the following templates:
"something", "fallback"

mogsie avatar Dec 21 '16 12:12 mogsie

To be completely honest I expect this might break some pattern libraries, because of typos in obscure twig files. So it might be that this behaviour should be "opt-in". I wanted to do that, but I was unsure of the best way of providing this opt-in-ness, or if it is a good idea at all.

mogsie avatar Dec 21 '16 13:12 mogsie