如何根据规则加载树枝模板

时间:2013-11-04 20:29:16

标签: php twig

我想根据给定文件是否存在来加载不同的模板。例如。默认情况下,我会从基本文件夹加载模板,但如果存在特定文件夹,那么我会加载该模板。我正在想象一些类似于自动加载功能的功能。树枝能提供这种能力吗?

1 个答案:

答案 0 :(得分:1)

取决于你是否想要

  • 从目录A或目录B加载模板(如果存在),但不是两者
  • 加载目录B(如果存在),并使其优先于目录A

实施例

// Load both directories
$loader = new \Twig_Loader_Filesystem($baseTemplateDir);

if (is_dir($secondTemplateDir)) {
    $loader->prependPath($secondTemplateDir);
}


// Load one directory
$loader = new \Twig_Loader_Filesystem(
    is_dir($secondTemplateDir) ? $secondTemplateDir : $baseTemplateDir
);

可选地

// Load both directories
try {
    $loader = new \Twig_Loader_Filesystem(array(
        $secondTemplateDir,
        $baseTemplateDir
    ));
} catch (\Twig_Error_Loader $e) {
    $loader = new \Twig_Loader_Filesystem($baseTemplateDir);
}

// Load one directory
try {
    $loader = new \Twig_Loader_Filesystem($secondTemplateDir);
} catch (\Twig_Error_Loader $e) {
    $loader = new \Twig_Loader_Filesystem($baseTemplateDir);
}