我正在尝试定义一个替代/默认模板加载器路径,以防第一个找不到。
目前我是这样初始化mustache的:
$m = new Mustache_Engine(array(
'loader' => new Mustache_Loader_FilesystemLoader($templates_path,array('extension'=>'.php'))
));
然后渲染模板:
$m->render($my_template_path, $fields);
在同一个Mustache实例下多次调用渲染方法。这工作得很好,但我不确定如何在不创建新Mustache实例的情况下更新加载器路径。
我一直在阅读文档,但还没有让它工作。我试过使用$loader->load()而不是渲染。这允许我更改路径,但它不呈现变量。
所以…我完全错过了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'))
))
));