Twig

The flexible, fast, and secure
template engine for PHP

a Symfony Product
Docs Functions template_from_string
You are reading the documentation for Twig 2.x. Switch to the documentation for Twig 1.x, 3.x.
Warning Twig version 2.x is no longer maintained.

Questions & Feedback

License

Twig documentation is licensed under the new BSD license.

template_from_string

2.8

The name argument was added in Twig 2.8.

The template_from_string function loads a template from a string:

1
2
{{ include(template_from_string("Hello {{ name }}")) }}
{{ include(template_from_string(page.template)) }}

To ease debugging, you can also give the template a name that will be part of any related error message:

1
{{ include(template_from_string(page.template, "template for page " ~ page.name)) }}

Note

The template_from_string function is not available by default.

On Symfony projects, you need to load it in your services.yaml file:

1
2
services:
    Twig\Extension\StringLoaderExtension:

or services.php file:

1
$services->set(\Twig\Extension\StringLoaderExtension::class);

Otherwise, add the extension explicitly on the Twig environment:

1
2
3
4
use Twig\Extension\StringLoaderExtension;

$twig = new \Twig\Environment(...);
$twig->addExtension(new StringLoaderExtension());

Note

Even if you will probably always use the template_from_string function with the include function, you can use it with any tag or function that takes a template as an argument (like the embed or extends tags).

Arguments

  • template: The template
  • name: A name for the template