如何更新Mustache中的模板加载器路径?

时间:2016-08-17 14:28:15

标签: php mustache.php

我正在尝试定义替代/默认模板加载器路径,以防第一个找不到。

目前我用这种方式初始化胡须:

$m = new Mustache_Engine(array(
'loader' => new Mustache_Loader_FilesystemLoader($templates_path,array('extension'=>'.php'))
));

然后我渲染模板:

$m->render($my_template_path, $fields);

在同一个Mustache实例下多次调用render方法。这工作正常,但我不知道如何在不创建新的Mustache实例的情况下更新加载器路径。

我一直在阅读docs,但还没有让它发挥作用。我尝试过使用$ loader-> load()而不是渲染。这允许我改变路径,但它不会渲染变量。

1 个答案:

答案 0 :(得分:0)

所以......我完全错过了CascadingLoader选项,它允许我设置多个加载器。我通过将代码更新为:

来获得加载的后备路径
$m = new Mustache_Engine(array(
    'loader'=> new Mustache_Loader_CascadingLoader(array(
               new Mustache_Loader_FilesystemLoader($templates_path,array('extension'=>'.php')),
               new Mustache_Loader_FilesystemLoader($alt_path,array('extension'=>'.php'))
    ))
));