Dotclear

source: inc/libs/twig/Extension/StringLoader.php @ 1101:7273894e61b8

Revision 1101:7273894e61b8, 1.3 KB checked in by Dsls <dsls@…>, 13 years ago (diff)

Twig 1.12.2

Line 
1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) 2012 Fabien Potencier
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11class Twig_Extension_StringLoader extends Twig_Extension
12{
13    /**
14     * {@inheritdoc}
15     */
16    public function getFunctions()
17    {
18        return array(
19            new Twig_SimpleFunction('template_from_string', 'twig_template_from_string', array('needs_environment' => true)),
20        );
21    }
22
23    /**
24     * {@inheritdoc}
25     */
26    public function getName()
27    {
28        return 'string_loader';
29    }
30}
31
32/**
33 * Loads a template from a string.
34 *
35 * <pre>
36 * {% include template_from_string("Hello {{ name }}") }}
37 * </pre>
38 *
39 * @param Twig_Environment $env      A Twig_Environment instance
40 * @param string           $template A template as a string
41 *
42 * @return Twig_Template A Twig_Template instance
43 */
44function twig_template_from_string(Twig_Environment $env, $template)
45{
46    static $loader;
47
48    if (null === $loader) {
49        $loader = new Twig_Loader_String();
50    }
51
52    $current = $env->getLoader();
53    $env->setLoader($loader);
54    try {
55        $template = $env->loadTemplate($template);
56    } catch (Exception $e) {
57        $env->setLoader($current);
58
59        throw $e;
60    }
61    $env->setLoader($current);
62
63    return $template;
64}
Note: See TracBrowser for help on using the repository browser.

Sites map